1. 程式人生 > >.NET 上傳檔案

.NET 上傳檔案

 

var data = new FormData();
data.append("ImgUrl", file);
$.ajax({
url: "",    //上傳圖片介面地址
type: "POST",
data: data,
async: false,
cache: false,
contentType: false,
processData: false,
success: function (res) {
  //返回圖片地址

}, error: function () {
alert("上傳失敗!");
}

});

/// <summary>
/// 上傳圖片
/// </summary>
/// <returns></returns>
public void UpLoadImg(HttpContext context)
{
string[] ImgType = { ".png", ".jpeg", ".jpg", ".gif", ".bmp" };
var path = UpLoadFile(ImgType);
// string result = JsonConvert.SerializeObject(path);
context.Response.Write(path);
}

/// <summary>
/// 上傳檔案
/// </summary>
/// <param name="fileTypeNames">允許上傳的檔案格式集合(例如:[.xls,.xlsx])</param>
/// <returns></returns>
public static string UpLoadFile(string[] fileTypeNames)
{
string serverPath = "", error = "";
HttpFileCollection filelist = HttpContext.Current.Request.Files;
if (filelist != null && filelist.Count > 0)
{
HttpPostedFile file = filelist[0];
String Tpath = "/" + DateTime.Now.ToString("yyyyMMdd").Substring(0, 6) + "/";
string filetype = file.FileName.Substring(file.FileName.LastIndexOf('.'));
if (Array.IndexOf(fileTypeNames, filetype.ToLower()) != -1)
{
string FileName = DateTime.Now.ToString("yyyyMMddHHmmssfff");
string FilePath = HttpContext.Current.Server.MapPath("~/UploadFile" + Tpath);
DirectoryInfo di = new DirectoryInfo(FilePath);
if (!di.Exists) { di.Create(); }
try
{
file.SaveAs(FilePath + FileName + filetype);
serverPath = "/UploadFile" + Tpath + FileName + filetype;
}
catch (Exception ex)
{
error = "檔案上傳失敗:" + ex.Message;
}
}
else error = "檔案型別錯誤";
}
else error = "未上傳任何檔案";
if (error.Length > 0)
throw new Exception(error);
else
return serverPath;
}