页面引用 ajaxfileupload.js
下载地址:http://files.cnblogs.com/files/kissdodog/ajaxfileupload_JS_File.rar
html:
<input type="file" name="file" id="TaskFile">
js:
//上传文件
//fileElementId:file控件 ID
//fileType:文件存放的文件夹名称
//fc:请求成功后方法
function uploadFile(fileElementId, fileType, fc) {
$.ajaxFileUpload({
url: "/Utility/SavePic?FolderName=" + fileType,
secureuri: false,
fileElementId: fileElementId,
async: false,
dataType: 'json',
loading: "正在保存数据...",
success: function (result) {
//typeof fc == "function" && fc(result);
console.log(result)
if (result.type.toString() == "1") {
fc && fc(result);
}
else {
toast(result.message);
return false;
}
}
});
}
//调用方法
UploadFile("TaskFile", FolderName, function (result) {
if (result.message == "success") {
//成功操作
}
});
c# 后端处理:
/// <summary>
/// 上传文件
/// </summary>
/// <returns></returns>
public ActionResult SavePic(string FolderName)
{
HttpFileCollection files = System.Web.HttpContext.Current.Request.Files;
//没有文件上传,直接返回
if (files[0].ContentLength == 0 || string.IsNullOrEmpty(files[0].FileName))
{
return Success("nofile");
}
if (files[0].ContentLength / 1024 / 1024 > 25)
{
return Error("文件上传过大,最大支持25M,请重新上传!");
}
//不存在创建对应目录
string tempPath = "/Resource/" + FolderName + "/" + DateTime.Now.ToString("yyyyMMdd");
string mappath = Server.MapPath("~" + tempPath);
if (Directory.Exists(mappath) == false)
{
Directory.CreateDirectory(mappath);
}
string FileEextension = Path.GetExtension(files[0].FileName);
string NewFileName = Guid.NewGuid().ToString() + FileEextension;
string virtualPath = tempPath + "/" + NewFileName;
string fullFileName = mappath + "/" + NewFileName;
files[0].SaveAs(fullFileName);
var data = new
{
file_path = virtualPath,
file_name = files[0].FileName,
file_ext = FileEextension
};
return Success("success", data);
}