[英]How to upload multiple files asynchronously in ASP.NET MVC (C#) using Progress Bar
[英]Upload files in ASP.NET MVC C#
我有
[HttpPost]
public ActionResult GetFiles(HttpPostedFileBase file)
{
if (file != null && file.ContentLength > 0)
{
var fileName = Path.GetFileName(file.FileName);
var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
file.SaveAs(path);
}
return Json("Uploaded " + Request.Files.Count + " files",JsonRequestBehavior.AllowGet);
}
现在我想在 Ajax 中上传文件并将文件保存在另一个文件夹中。 如何从输入表单中获取文件并通过 Ajax 发送?
尝试这个:
cshtml:
<input id="myFile" type="file" name="myfile" onchange="GoToPreview(this)" style="display: none">
function GoToPreview(input) {
if (input.files && input.files[0]) {
var tmpImageData = new FileReader();
tmpImageData.onload = function (e) {
SetImageData(imageData);
}
tmpImageData.readAsDataURL(input.files[0]);
}
}
function SetImageData(imageData) {
$.ajax({
url: '/Home/SetImageData',
type: 'POST',
data: { imageData: imageData },
success: function (data) {
// code here
},
error: function (data) {
// code for exception
}
});
}
在服务器端的 SetImageData 方法中做你的事情。
正如@Reza Aghaei 已经说过的,您可以使用FormData
来解决您的问题,但我建议您使用此库中的ajaxForm()
方法。 我使用这种方法是因为IE8 和 IE9 不支持FormData
而且真的不难使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.