c# 获取文件夹中所有图片
--我此处做接口使用,返回所有图片地址给第三方,他随机提取其中一张
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