簡體   English   中英

無法使用C#從asp.net的客戶端接收文件

[英]Can't receive files from client side in asp.net using C#

我正在嘗試從表單獲取個人資料圖像。 html看起來像這樣:

<form action="UpdateProfile.aspx" method="post">
  <input type='file' name='profilePic'/>
</form>

服務器端代碼如下所示:

HttpPostedFile image = Request.Files["profilePic"];
string imagePath = @"../Pictures/Profile/DefaultPicture.png";
if (image.ContentLength >0 && image != null)
{
   if (Path.GetExtension(image.FileName) == "jpg" || Path.GetExtension(image.FileName) == "jpeg" ||
       Path.GetExtension(image.FileName) == "png" || Path.GetExtension(image.FileName) == "gif" ||
       Path.GetExtension(image.FileName) == "bmp")
   {
       string fileExtention = Path.GetExtension(image.FileName);
       string FileName = Session["Username"].ToString() + "." + fileExtention;
       image.SaveAs(Server.MapPath(Path.Combine("../Pictures/Profile/", FileName)));
       imagePath = Path.Combine("../Pictures/Profile/", FileName);
   }
}

但是它永遠都行不通,無論我上傳什么image變量始終為null 就像服務器無法接收它一樣。 你們可以幫助我解決問題或告訴我哪里出問題了嗎? 先感謝您。

確保正確設置Content-Type:

僅當HTTP請求的Content-Type值為“ multipart / form-data”時,才會填充文件集合。

https://msdn.microsoft.com/zh-cn/library/system.web.httprequest.files%28v=vs.110%29.aspx

這是一個例子:

<FORM action="..."
       enctype="multipart/form-data"
       method="post">
   ...
</FORM>

指導您的示例。

 <asp:FileUpload ID="FileUpload1" runat="server" />
 <asp:Button ID="btnUpload" runat="server" Text="Upload" OnClick="Upload" />

 using System.IO;
 using System.Collections.Generic;
 protected void Upload(object sender, EventArgs e)
 {
    if (FileUpload1.HasFile)
    {
    string fileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
    FileUpload1.PostedFile.SaveAs(Server.MapPath("~/Images/") + fileName);
    Response.Redirect(Request.Url.AbsoluteUri);
   }
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM