c# 获取文件夹中所有图片

2019-10-10  本文已影响0人  张天择

--我此处做接口使用,返回所有图片地址给第三方,他随机提取其中一张

public string GetQRCode()

        {

            int @int = GameRequest.GetInt("userid", 0);

            string result;

            try

            {

                JArray ja = new JArray(); //定义一个数组

                string info = string.Empty;

                var path1 = System.AppDomain.CurrentDomain.BaseDirectory;//获取程序集目录

                string path = Path.Combine(path1, "images", "QRCode");//Path.Combine 将3个字符串组合成路径   x/xxx/images/QRCode

                var images = Directory.GetFiles(path, ".", SearchOption.AllDirectories).Where(s => s.EndsWith(".png") || s.EndsWith(".jpg"));

                //images = Directory.GetFiles(path, "*.png|*.jpg", SearchOption.AllDirectories);

                //Directory.GetFiles 返回指定目录的文件路径 SearchOption.AllDirectories 指定搜索当前目录及子目录

                //遍历string 型 images数组

                foreach (var i in images)

                {

                    var str = i.Replace(path1, "");//获取相对路径

                    var path2 = str.Replace("\\", "/");//将字符“\\”转换为“/”

                    ja.Add(path2);

                }

                info = Newtonsoft.Json.JsonConvert.SerializeObject(ja);//序列化为String

                result = JsonHelper.SerializeObject(new

                {

                    Code = 0,

                    Data = info

                });

            }

            catch (Exception ex)

            {

                result = JsonHelper.SerializeObject(new

                {

                    Code = 1,

                    Msg = ex.Message

                });

            }

            return result;

        }

-------后台对图片进行增加删除

1,后台获取图片信息 (MVC)

前端:

<div class="box-content" style="overflow: hidden; display: block;"> <div class="row"> <div class="col-md-2"><div id="DataTables_Table_0_length" class="dataTables_length"> <label> <select size="1" name="DataTables_Table_0_length" aria-controls="DataTables_Table_0" id="pagecount"> <option value="10" selected="selected">10</option> <option value="25">25</option> <option value="50">50</option> <option value="100">100</option> </select> 条/页 </label> <div class="dataTables_info" id="DataTables_Table_0_info">显示 1 至 10 共 10 条</div> </div> </div> <div class="col-md-6" style="align-content:center"> <p><span id="sumSuccess">上传多张二维码后,系统会随机拿取一张。请勿上传无效二维码!!!及时删除无效二维码!!!</span></p> </div> <div class="col-md-4" style="padding-bottom:5px; padding-top:5px; text-align:right;">

<input id="upThumbnailField" name="upThumbnailField" type="file" style="display:none" onchange='UploadImg("upThumbnailField", "/Filled/UploadFileToLocal", "upThumbnailUrl",@((Int32)Game.Facade.EnumerationList.UploadFileEnum.PayQRCode));'>

<button type="button" class="btn btn-success" onclick="$('input[id=upThumbnailField]').click();"><i class="glyphicon glyphicon-plus"></i>添加</button>

<button type="button" id="btnDelete" class="btn btn-danger"><i class="glyphicon glyphicon-trash icon-white"></i>删除</button> </div> </div>

<!--table开始--> <div id="DataTables_Table_0_wrapper" class="dataTables_wrapper table-center" role="grid"> <table class="table table-striped table-bordered bootstrap-datatable datatable responsive dataTable" id="DataTables_Table_0" aria-describedby="DataTables_Table_0_info"> <thead> <tr role="row"> <th><input name="ckall" type="checkbox" value="" onclick="SelectAll(this,'cid')" /></th> <th>二维码名字</th> <th>二维码地址</th> <th>二维码图片</th> </tr> </thead> <tbody role="alert" aria-live="polite" aria-relevant="all"> </tbody> </table> <!--分页控件--> <div class="row"> <div class="col-md-6"> </div> <div class="col-md-6"> <div class="dataTables_paginate paging_bootstrap pagination" style="float:right;"> @*<ul class="pagination" id="pagin"></ul>*@ </div> </div> </div> </div>

<!--table结束-->

</div>

--script

<script type="text/javascript">

var postData = {};//搜索条件

$(document).ready(function () {

docReady();

$("#btnDelete").click(function () {

var cid = GetSelectValues();

if (cid == "") { alert("未选中任何数据"); return; }

var data = {};

data.cid = cid;

AjaxSubmit("/Filled/DeletePayQRCode", data, callBack, "del"); });

$("#btnInsert").click(function () {

openWindowOwn('/Filled/AddPayQRCode', '0000', 600, 520) }); });

function docReady() { //加载数据

postData.pageSize = parseInt($("#pagecount").val());

postData.pageIndex = 1; AjaxSearch(postData); }

//搜索事件 function AjaxSearch(postData) { $('#pagin').paging("/Filled/GetPayQRCode", postData, CreatTableBody, postData.pageIndex); }

//绑定数据 function CreatTableBody(jsondata, pageTotal, pageCount, pageIndex, msg) {

var html = "";

if (jsondata != null && jsondata.length > 0) {

$.each(jsondata, function (i, item) {

html += stringFormat("<tr class=\"odd\">");

html += stringFormat("<td>{0}</td>", (item.QRCodeName != "" ? "<input name='cid' type='checkbox' value='" + item.QRCodeName + "'/>" : ""));

html += stringFormat("<td>{0}</td>", item.QRCodeName);

html += stringFormat("<td>{0}</td>", item.QRCodeUrl);

html += stringFormat("<td>{0}</td>", (item.QRCodeImgUrl != "" ? " <img style='width: 60px; height: 60px;' src='" + item.QRCodeImgUrl + "'/>" : "")); html += "</tr>"; }); }

$("#DataTables_Table_0_wrapper tbody").html(html); //

$("#DataTables_Table_0_info").html(stringFormat("显示 {0} 至 {1} 共 {2} 条", ((pageIndex - 1) * postData.pageSize + 1), ((pageIndex * postData.pageSize) < pageTotal ? (pageIndex * postData.pageSize) : pageTotal), pageTotal)); }

//回调函数 function callBack(jsonData, fname) { switch (fname) { case "del": alert(jsonData.Msg); window.location.reload(); //window.opener.location.reload(); break; } }

//字符串格式化 function stringFormat() { if (arguments.length == 0) return null; var str = arguments[0]; for (var i = 1; i < arguments.length; i++) { var re = new RegExp('\\{' + (i - 1) + '\\}', 'gm'); str = str.replace(re, arguments[i]); } return str; } </script>

--后端 FilledController.cs

#region 二维码管理

        /// <summary>

        /// 二维码管理

        /// </summary>

        /// <returns></returns>

        [CheckCustomer]

        public ActionResult PayQRCode()

        {

            return View();

        }

        /// <summary>

        /// 获取二维码

        /// </summary>

        /// <returns></returns>

        [CheckCustomer]

        [AntiSqlInjection]

        public JsonResult GetPayQRCode()

        {

            int pageIndex = TypeUtil.ObjectToInt(base.Request["pageIndex"], 1);

            int pageSize = TypeUtil.ObjectToInt(base.Request["pageSize"], 10);

            int num = TypeUtil.ObjectToInt(base.Request["Type"]);

            try

            {

                JArray ja = new JArray(); //定义一个数组

                DataTable dt = new DataTable();

                dt.Columns.Add("QRCodeName", typeof(string));

                dt.Columns.Add("QRCodeUrl", typeof(string));

                dt.Columns.Add("QRCodeImgUrl", typeof(string));

                string info = string.Empty;

                var path1 = "D:\\BaiduNetdiskDownload\\web\\webAgent";// System.AppDomain.CurrentDomain.BaseDirectory;//获取程序集目录

                //string path = Path.Combine(path1, "images", "QRCode");//Path.Combine 将3个字符串组合成路径

                string path = ApplicationSettings.Get("QRCodeUrl");

                var images = Directory.GetFiles(path, ".", SearchOption.AllDirectories);

                //images = Directory.GetFiles(path, "*.png|*.jpg", SearchOption.AllDirectories);

                //Directory.GetFiles 返回指定目录的文件路径 SearchOption.AllDirectories 指定搜索当前目录及子目录

                //遍历string 型 images数组

                foreach (var i in images)

                {

                    //图片名称

                    var str1 = i.Replace(path, "");//获取相对路径

                    var QRCodeName = str1.Replace("\\", "/");//将字符“\\”转换为“/”

                    //图片地址

                    var str2 = i.Replace(path1, "");

                    var QRCodeUrl = str2.Replace("\\", "/");

                    //图片真实地址

                    var str3 = "http://47.105.214.34:85" + QRCodeUrl;

                    var QRCodeImgUrl = str3.Replace("\\", "/");

                    DataRow dr = dt.NewRow();

                    dr[0] = QRCodeName; //通过索引赋值

                    dr[1] = QRCodeUrl;

                    dr[2] = QRCodeImgUrl;

                    dt.Rows.Add(dr);

                }

                return Json(new

                {

                    IsOk = true,     

                    Total = dt.Rows.Count,

                    Data = JsonHelper.SerializeObject(dt)

                });

            }

            catch (Exception ex)

            {

                return Json(new

                {

                    IsOk = false,

                    Msg = ex.Message

                });

            }

        }

        /// <summary>

        /// 删除二维码

        /// </summary>

        /// <returns></returns>

        [AntiSqlInjection]

        [CheckCustomer]

        public JsonResult DeletePayQRCode()

        {

            if (user != null)

            {

                AdminPermission adminPermission = new AdminPermission(user, user.MoudleID);

                if (!adminPermission.GetPermission(8L))

                {

                    return Json(new

                    {

                        IsOk = false,

                        Msg = "没有权限",

                        Url = "/NoPower/Index"

                    });

                }

            }

            string text = TypeUtil.ObjectToString(base.Request["cid"]);

            if (!string.IsNullOrEmpty(text))

            {

                string path = ApplicationSettings.Get("QRCodeUrl");

                path = path + text;

                var fileUrl = path.Replace("\\", "/");

                try

                {

                    System.IO.File.Delete(path);

                    //string file =System.Web.HttpContext.Current.Server.MapPath(fileUrl);

                    //if (System.IO.File.Exists(file))

                    //{

                    //    System.IO.File.Delete(file);

                    //}

                    return Json(new

                    {

                        IsOk = true,

                        Msg = "删除成功"

                    });

                }

                catch

                {

                    return Json(new

                    {

                        IsOk = false,

                        Msg = "删除失败"

                    });

                }

            }

            return Json(new

            {

                IsOk = false,

                Msg = "没有删除的项"

            });

        }

        /// <summary>

        /// 添加二维码

        /// </summary>

        /// <returns></returns>

        [CheckCustomer]

        public ActionResult AddPayQRCode()

        {

            return View();

        }

        /// <summary>

        /// 上传图片到服务器

        /// </summary>

        /// <returns></returns>

        [HttpPost]

        public string UploadFileToLocal()

        {

            APIResult aPIResult = new APIResult();

            try

            {

                int num = TypeUtil.ObjectToInt(base.Request["op"]);

                int num2 = 0;

                if (num > 0)

                {

                    EnumerationList.UploadFileEnum uploadFileEnum = (EnumerationList.UploadFileEnum)Enum.Parse(typeof(EnumerationList.UploadFileEnum), num.ToString());

                    string text = "";

                    switch (uploadFileEnum)

                    {

                        case EnumerationList.UploadFileEnum.PayQRCode:

                            num2 = 0;

                            text = "/images/QRCode/";

                            break;

                    }

                    HttpPostedFileBase httpPostedFileBase = base.Request.Files[0];

                    if (!string.IsNullOrEmpty(text))

                    {

                        string text2 = ApplicationSettings.Get("QRCodeUrl");

                        string str = "";

                        bool flag = true;

                        if (num2 == 0)

                        {

                            if (!ValidateHelper.IsImgFileName(httpPostedFileBase.FileName))

                            {

                                flag = false;

                                aPIResult.error = -2;

                                aPIResult.msg = "上传文件的格式不对!";

                            }

                            if (httpPostedFileBase.ContentLength >= 2097152)

                            {

                                aPIResult.error = -2;

                                aPIResult.msg = "上传文件的大小不能大于2M!";

                                flag = false;

                            }

                            str = DateTime.Now.ToString("yyyyMMddHHmmss") + ".jpg";

                            text2 += str;

                        }

                        if (flag)

                        {

                            string path = text2.Substring(0, text2.LastIndexOf("\\"));

                            DirectoryInfo directoryInfo = new DirectoryInfo(path);

                            if (!directoryInfo.Exists)

                            {

                                directoryInfo.Create();

                            }

                            FileStream fileStream = new FileStream(text2, FileMode.Create, FileAccess.Write);

                            byte[] @byte = TypeUtil.GetByte(httpPostedFileBase.InputStream);

                            fileStream.Write(@byte, 0, @byte.Length);

                            fileStream.Flush();

                            fileStream.Close();

                            aPIResult.error = -2;

                            aPIResult.msg = "上传成功";

                            aPIResult.url = text + str;

                        }

                    }

                    else

                    {

                        aPIResult.error = -1;

                        aPIResult.msg = "路径出错";

                    }

                }

                else

                {

                    aPIResult.error = -2;

                    aPIResult.msg = "op出错";

                }

            }

            catch (Exception ex)

            {

                aPIResult.error = -2;

                aPIResult.msg = "上传图片异常";

                LogUtil.WriteError(ex.ToString());

            }

            return JsonConvert.SerializeObject(aPIResult);

        }

        #endregion

上一篇 下一篇

猜你喜欢

热点阅读