[英]image upload in asp.net razor website
我有一個表單,您可以在其中輸入有關圖片的信息並上傳,html表單中的上傳代碼為:
@FileUpload.GetHtml(
initialNumberOfFiles: 1,
allowMoreFilesToBeAdded: false,
includeFormTag: false,
uploadText: "Upload");
並在同一頁面的C#代碼中得到了:
var fileName = "";
var fileSavePath = "";
var uploadedFile = Request.Files[0];
fileName = Path.GetFileName(uploadedFile.FileName);
fileSavePath = Server.MapPath("~/Images/inscriptions/" +
fileName);
uploadedFile.SaveAs(fileSavePath);
由於某種原因,我在行上收到錯誤“索引超出范圍”:
var uploadedFile = Request.Files[0];
我希望用戶單擊瀏覽選擇文件並填充其他文本框,然后單擊保存以上傳圖片並將信息填充到數據庫中(已處理)
我發現您的問題可以通過以下解決方案之一解決:
解決方案1 :將includeFormTag: false
更改為includeFormTag: true
。
@FileUpload.GetHtml(
initialNumberOfFiles: 1,
allowMoreFilesToBeAdded: false,
includeFormTag: true,
uploadText: "Upload");
如果FileUpload
幫助程序放在任何form
標簽之外,則適用此解決方案。
解決方案2 :將Html.BeginForm
與屬性enctype="multipart/form-data"
一起使用,該屬性包裝了FileUpload
助手。
using (Html.BeginForm("ActionName", "ControllerName", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@FileUpload.GetHtml(
initialNumberOfFiles: 1,
allowMoreFilesToBeAdded: false,
includeFormTag: false,
uploadText: "Upload");
}
如果您不想通過FileUpload
幫助程序創建新的表單標簽,而是使用現有表單,則可以使用此解決方案。
注意: Request.Files[0]
上的IndexOutOfRangeException
源自表單提交請求,該請求省略了<input type="file" />
包含的文件部分,因此您需要包括enctype="multipart/form-data"
屬性(請參見此處的說明) )。
相關問題:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.