У меня проблема с 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