我試圖在MVC中上傳文件。我在SO上看到的大多數解決方案都是使用webform。我不想使用它,並且個人喜歡使用流。你如何在MVC上實現RESTful文件上傳?謝謝!MVC中的文件上傳
7
A
回答
13
編輯:而當你認爲你有這一切想通了,你意識到有一個更好的方法。退房http://haacked.com/archive/2010/07/16/uploading-files-with-aspnetmvc.aspx
原文: 我不知道,我明白你的問題100%,但我認爲你要上傳文件到一個URL,看起來像HTTP:// {服務器名稱}/{}控制器/上傳?這將與使用Web表單的正常文件上傳完全相同。
所以,你的控制有一個名爲上傳動作,看起來與此類似:
//For MVC ver 2 use:
[HttpPost]
//For MVC ver 1 use:
//[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Upload()
{
try
{
foreach (HttpPostedFile file in Request.Files)
{
//Save to a file
file.SaveAs(Path.Combine("C:\\File_Store\\", Path.GetFileName(file.FileName)));
// * OR *
//Use file.InputStream to access the uploaded file as a stream
byte[] buffer = new byte[1024];
int read = file.InputStream.Read(buffer, 0, buffer.Length);
while (read > 0)
{
//do stuff with the buffer
read = file.InputStream.Read(buffer, 0, buffer.Length);
}
}
return Json(new { Result = "Complete" });
}
catch (Exception)
{
return Json(new { Result = "Error" });
}
}
在這種情況下,我回到JSON來表示成功,但你可以改變這XML(或任何爲此事)如果需要的話。
0
public ActionResult register(FormCollection collection, HttpPostedFileBase FileUpload1){
RegistrationIMG regimg = new RegistrationIMG();
string ext = Path.GetExtension(FileUpload1.FileName);
string path = Server.MapPath("~/image/");
FileUpload1.SaveAs(path + reg.email + ext);
regimg.Image = @Url.Content("~/image/" + reg.email + ext);
db.SaveChanges();}
相關問題
- 1. 在MVC中上傳文件
- 2. MVC文件上傳
- 3. 文件上傳MVC
- 4. 上傳文件MVC
- 5. MVC - 文件上傳
- 6. 在ASP.NET MVC中使用Jquery文件上傳上傳文件3
- 7. MVC上傳文件上傳失敗
- 8. MVC中的大文件上傳問題
- 9. 在MVC中的文件上傳5
- 10. EXTJS中的文件上傳字段MVC
- 11. 在asp.net中的文件上傳器mvc
- 12. MVC中的文件上傳Html.BeginForm
- 13. ASP.NET MVC中的文件上傳5
- 14. ASP.NET MVC文件上傳
- 15. 上傳文件在.net MVC
- 16. ASP.NET MVC上傳文件
- 17. MVC剃刀文件上傳
- 18. 文件上傳ASP.NET MVC
- 19. 多文件上傳asp.net mvc
- 20. 文件上傳mvc項目
- 21. MVC 3文件上傳
- 22. 上傳文件asp.net mvc 2
- 23. 多文件上傳ASP.NET MVC
- 24. asp.net mvc大文件上傳
- 25. 上傳文件jQuery ajax MVC
- 26. MVC上傳,文件管理
- 27. Ajax.BeginForm在MVC上傳文件
- 28. 在Asp.Net文件上傳MVC
- 29. asp mvc文件上傳
- 30. MVC文件上傳驗證
而且,顯然總是確保你不只是接受來自用戶的任何舊垃圾。在您信任它之前,最小檢查將是內容類型,擴展名並通過病毒掃描程序運行。 :) – ZombieSheep 2009-10-22 08:55:15
不同的是,ZombieSheep,你需要檢查客戶端在服務器端發送的一切,即使你已經在客戶端進行了驗證,但所有「生產準備」的東西阻礙了你正在嘗試的點演示。 – Geoff 2009-10-22 09:05:19
謝謝!但這就是我目前使用的方式。我不想在服務器上保存任何文件,因爲它會污染服務器。 – Roy 2009-10-22 09:05:20