2014-04-06 38 views
0

我想在我的web表單中實現一個文件上傳,它試過了。FileUpload對象根路徑錯誤

<asp:Label ID="lbl1" runat="server" Text="Press browse!"></asp:Label> 
<br /> 
<br /> 
<asp:FileUpload ID="FileUpload1" runat="server" /> 
<br /> 
<br /> 
<asp:Button ID="btnUpload" runat="server" Text="Upload" /> 
Protected Sub btnUpload_Click(sender As Object, e As EventArgs) Handles btnUpload.Click 
    If FileUpload1.HasFile Then 
     Try 
      FileUpload1.SaveAs("Images\" & FileUpload1.FileName) 
      lbl1.Text = "File name: " & _ 
       FileUpload1.PostedFile.FileName & "<br>" & _ 
       "File Size: " & _ 
       FileUpload1.PostedFile.ContentLength & "<br>" & _ 
       "Content type: " & _ 
       FileUpload1.PostedFile.ContentType 
     Catch ex As Exception 
      lbl1.Text = "ERROR: " & ex.Message.ToString() 
     End Try 
    Else 
     lbl1.Text = "You have not specified a file." 
    End If 
End Sub 

但給了我一個錯誤,說文件路徑不紮根。我正在本地運行此刻,當我用這個'C:Users/Me/Documents/MYPROJECTNAME/MYPROJECTNAME/Images'替換文件路徑時,它工作正常。這將會在線,所以我想寫作文件路徑?

回答

1

您需要使用Server.MapPath來解析Images文件夾相對於項目物理路徑的路徑(因此它適用於本地和部署應用程序)。

FileUpload1.SaveAs(Server.MapPath("~\Images\") & FileUpload1.FileName) 

~返回應用程序根目錄的路徑。

Here是Server.MapPath的一個很好的解釋。