我有一個FileUpload的問題,當我從本地機器上選擇一個文件時,它不會帶來真正的文件路徑,它會使用工程文件的路徑和假設我選擇的文件存在,有什麼想法?ASP.NET/VB.NET FileUpload控件
例如: 文件名是「Q.JPG」,並在「C:\」 當我瀏覽到「C:\」,然後選擇「Q.JPG」,並點擊打開,我得到以下錯誤 找不到文件'C:\ Program Files \ Microsoft Visual Studio 8 \ Common7 \ IDE \ q.jpg'。 所以,當我火了代碼的文件上傳到FTP爲例,它會因爲文件不存在返回錯誤
HTML端:
<asp:FileUpload ID="FU" runat="server" Height="24px" />
下面是VB代碼:
Protected Sub btnUpload_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpload.Click
If FU.PostedFile IsNot Nothing AndAlso FU.PostedFile.FileName <> "" Then
Dim MaxSize As Integer = FU.PostedFile.ContentLength
If MaxSize > "2097152" Then
lblUpload.Text = "The file size cannot exceed 2 MB"
btnSave.Focus()
GoTo 99
End If
'--------------------------
' set up request...
Dim LocFile As String = FU.PostedFile.FileName
Dim clsRequest As System.Net.FtpWebRequest = DirectCast(System.Net.WebRequest.Create("ftp://myftp.com/" & LocFile), System.Net.FtpWebRequest)
clsRequest.Credentials = New System.Net.NetworkCredential("username", "password")
clsRequest.Method = System.Net.WebRequestMethods.Ftp.UploadFile
' read in file...
Dim bFile() As Byte = System.IO.File.ReadAllBytes(FU.PostedFile.FileName)
' upload file...
Dim clsStream As System.IO.Stream = clsRequest.GetRequestStream()
clsStream.Write(bFile, 0, bFile.Length)
clsStream.Close()
clsStream.Dispose()
'--------------------------
lblUpload.Text = "Uploaded"
btnSave.Focus()
Else
lblUpload.Text = "Choose a file to upload"
btnSave.Focus()
End If
99:「什麼都不做
End Sub
聽起來像客戶端(即您的瀏覽器)的問題,而不是在服務器端。 – 2011-04-28 13:45:50
您可以發佈您的FileUploader標記,Open按鈕和事件處理程序以處理與這些控件相關的任何事件嗎? – pseudocoder 2011-04-28 13:48:32
http://msdn.microsoft.com/en-us/library/aa479405.aspx – asawyer 2011-04-28 13:49:50