我正在构建一个 CMS 作为 MVC 4 项目,其中一个功能是上传您的照片。用户从他的硬盘驱动器中选择一张照片,这会触发控制器上的 UploadFile 方法的 ajax 请求。这应该将照片复制到服务器上的虚拟文件夹中。问题是我真的不明白浏览器将文件存储在哪里并将其发送到服务器,以及我应该在控制器上做什么。
到目前为止,这是我的代码-
风景:
<input id="cng_pic_btn" type="file" name="file" accept="image/*" /></td>
JavaScript 调用服务器:
$('#cng_pic_btn').live('change', function () {
custom_url = "/SideBar/UploadFile";
return_msg = "file uploaded";
var file_path = $('#cng_pic_btn').attr("value");
alert(file_path);
sendInfo = {
upload_from: file_path
}
CreataAjaxRequest(custom_url, sendInfo, return_msg);
})
控制器方法:
[HttpPost]
public void UploadFile(string upload_from)
{
string path = @"D:\Temp\";
HttpPostedFileBase photo = Request.Files[upload_from];
photo.SaveAs(path + photo.FileName);
}
发送ajax请求:
function CreataAjaxRequest(custom_url, sendInfo, return_msg) {
$.ajax({ type: "POST", url: custom_url, data: sendInfo })
.success(function (html) {
$(".query-result").replaceWith(html);
})
}