view:
<body>
<input type="file" class="ajax_file_upload" />
</body>
Js://引用jquery.js,,,版本最新的把!!!
<script>
$(function () {
$("body").on("change", ".ajax_file_upload", function () {
var data_ajax = "/Home/UpImages";
var formdata = new FormData();//用form 表单直接 构造formData 对象;
formdata.append("upfile", $(this)[0].files[0]);
$.ajax({
url: data_ajax,
type: 'POST',
cache: false,
async: false,
data: formdata,
processData: false,
contentType: false,
}).done(function (data) {
if (data.error==0) {
//.......
} else {
//.......
}
}).fail(function (res) {
});
});
});
</script>
Controller:
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
#region 上传图片
/// <summary>
///
/// </summary>
/// <returns></returns>
[HttpPost]
public ActionResult UpImages()
{
Hashtable hash = new Hashtable();
try
{
if (Request.Files.Count == 0)
throw new Exception("请选择文件");
System.Web.HttpPostedFileBase fileData = Request.Files[0];
if (fileData == null)
throw new Exception("请选择文件");
string sExtensionName = Path.GetExtension(fileData.FileName);
if (sExtensionName.ToLower() != ".gif" && sExtensionName.ToLower() != ".jpg" && sExtensionName.ToLower() != ".jpeg" &&
sExtensionName.ToLower() != ".png")
{
hash["error"] = 1;
hash["message"] = "上传文件不为图片!";
}
else
{
var folderpath = "/ewmPic/photos/" + DateTime.Now.ToString("yyyy-MM") + "/";
var sSaveFile = Server.MapPath(folderpath);
//创建文件夹
if (!System.IO.Directory.Exists(sSaveFile))
System.IO.Directory.CreateDirectory(sSaveFile);
Random rd = new Random();
string sFileName = Guid.NewGuid().ToString("N") + rd.Next(10000, 99999).ToString() + sExtensionName;
string sSaveName = sSaveFile + sFileName;
string sResultPath = folderpath + sFileName;
fileData.SaveAs(sSaveName);
hash["error"] = 0;
hash["url"] = sResultPath;
hash["tit"] = "暂无描述";
}
}
catch (Exception message)
{
hash["error"] = 1;
hash["message"] = message.Message;
}
return Json(hash, "text/html; charset=UTF-8", JsonRequestBehavior.AllowGet);
}
#endregion
}