0

我有这个应用程序需要上传图像,我正在使用 AJAX 这样做。当我尝试使用以下方式上传图像时:

<input type="submit"/>

没有问题,但是当我尝试使用时,

<input type="button"/>

它引起了问题。
在我的观点中,我有这样的事情:

<input type="file" id="OriginalLocation" name="OriginalLocation"/>

这就是我在控制器中放入的内容:

public ActionResult SaveEvent(EventModel viewModel, int? page)

{

int Id = Session["ID"] != null ? UtilityHelper.GetIntegerValue(Session["ID"].ToString()) : 0; //this ID we are fetching from session
HttpPostedFileBase file = Request.Files["OriginalLocation"];
viewModel.ContentType = file.ContentType;
Int32 length = file.ContentLength;
byte[] tempImage = new byte[length];
file.InputStream.Read(tempImage, 0, length);
viewModel.ActualImage = tempImage;
// BusinessLayer.Event.BusinessLayer.SetImage(viewModel);
BusinessLayer.Event.BusinessLayer.SaveEvent(viewModel, Id);
EventModel viewmodel = BusinessLayer.TeamEvent.BusinessLayer.GetAllEvents(page, Id);
return View("~/Views/Home/Event.aspx", viewmodel);
}
4

1 回答 1

1

您不能使用 AJAX 上传文件,至少在不支持HTML 5 File API. 如果您不需要支持那些旧版浏览器,您可以简单地使用 newFormDataXMLHttpRequest对象。另一方面,如果您需要支持旧版浏览器,则可能需要使用其他一些技术,例如隐藏 iframe 或 Flash 电影。例如,有一些插件可以检测浏览器功能,并基于它们使用正确的技术。看看jquery.form pluginUploadify

于 2013-05-29T14:47:36.700 回答