Analytics
2010年5月27日 星期四
[ASP.NET]VB.NET FTP上傳檔案(VB.NET FTP upload files)
問題
VB.NET FTP上傳檔案
解決方法
C#請參考http://www.dotblogs.com.tw/jeff-yeh/archive/2008/04/09/2652.aspx
記得IIS裡的FTP的寫入權限要開啟歐
Public Shared Sub CopyCSVToFtpPath(ByVal strFileName As String, ByVal strFileContent As String)
'fileName上傳的檔案ex : c:\abc.xml , uploadUrl上傳的FTP伺服器路徑ftp://127.0.0.1,UserName使用者FTP登入帳號 , Password使用者登入密碼
Dim requestStream As Stream = Nothing
Dim fileStream As FileStream = Nothing
Dim uploadResponse As FtpWebResponse = Nothing
Try
Dim pathlocal As String = HttpContext.Current.Server.MapPath("..\down\") '暫存路徑
'存檔路徑
pathlocal += strFileName
Dim swS As New StreamWriter(pathlocal, True, System.Text.Encoding.Default)
swS.WriteLine(strFileContent)
swS.Flush()
swS.Close()
'取得WebConfig裡的設定
Dim Address As String = ConfigurationManager.AppSettings("FTP.Address") & strFileName
Dim UserName As String = ConfigurationManager.AppSettings("FTP.UserName")
Dim Password As String = ConfigurationManager.AppSettings("FTP.Password")
'要給檔案路徑
Dim uploadRequest As FtpWebRequest = DirectCast(WebRequest.Create(Address), FtpWebRequest)
uploadRequest.Method = WebRequestMethods.Ftp.UploadFile
'設定Method上傳檔案
uploadRequest.Proxy = Nothing
If UserName.Length > 0 Then
'如果需要帳號登入
Dim nc As New NetworkCredential(UserName, Password)
'設定帳號
uploadRequest.Credentials = nc
End If
requestStream = uploadRequest.GetRequestStream()
FileStream = File.Open(pathlocal, FileMode.Open)
Dim buffer As Byte() = New Byte(1024) {}
Dim bytesRead As Integer
While True
'開始上傳資料流
bytesRead = FileStream.Read(buffer, 0, buffer.Length)
If bytesRead = 0 Then
Exit While
End If
requestStream.Write(buffer, 0, bytesRead)
End While
requestStream.Close()
uploadResponse = DirectCast(uploadRequest.GetResponse(), FtpWebResponse)
fileStream.Flush()
fileStream.Close()
File.Delete(pathlocal)
Catch ex As Exception
'lblMessage.Text = ex.Message
Throw ex
Finally
If uploadResponse IsNot Nothing Then
uploadResponse.Close()
End If
If FileStream IsNot Nothing Then
FileStream.Close()
End If
If requestStream IsNot Nothing Then
requestStream.Close()
End If
End Try
End Sub
訂閱:
張貼留言 (Atom)
熱門文章
-
問題 在SERVER 2008 R2上佈署Web站台,發生以下錯誤訊息: 指出HTTP錯誤 500.19 – Internal Server Error 詳細錯誤 無法讀取設定檔案,因為權限不足 解決方法 在要佈署的專案資料夾上右鍵=>安全性=>...
-
問題 IIS 7發生HTTP 錯誤 500.19 - Internal Server Error 無法存取要求的網頁,因為與該網頁相關的設定資料不正確。 錯誤訊息如下: 解決方法 1.資料夾=>右鍵內容=>安全性 2.點選”編輯”=>...
-
問題 如何 於QNAP NAS上設定Shadowsocks Server 解決方法 1.在QNAP上安裝對應版本的 Shadowsocks Server 2.安裝好後開啟Shadowsocks 這時候如果進不去,就代表這台NAS躲在ROUTER後面,所...
-
問題 嘗試載入 Crystal Reports 執行階段時發生錯誤。可能是 Crystal Reports 登錄機碼權限不足,或是 Crystal Reports 執行階段安裝不正確。請安裝適當的 Crystal Reports 可轉散佈程式 (CRRedist*.msi)...
-
問題 使用 DataTable.Select對DataTable做資料查詢 解決方法 資料查詢除了對資料庫下語法查詢以外,若已經將資料載入DataTable時,要從中下條件以取得特定資料的話,可以如下方式 //假設資料來源是這樣取的 DataTable dt = ...
-
問題 ACER 5738ZG-422G32Mno 安裝Windows 7 x64 解決方法 ACER的NB款式真的出得太多了,一樣是ASPIRE 5738ZG就有分很多款,讓人即使要自行安裝也都不知道要安裝哪一個驅動程式,昏倒~ 原廠規格: 作業系統 ...
-
問題 使用 Math.Round 取小數點第N位 如果想取得小數點第幾位時,可以用Math.Round(數值,小數點第幾位)來做到 解決方法 取得以下小數點第2位 double d = 1.333333; d=Math.Round(d,2); //d會等於1.33
-
問題 WebService部署在IIS 7上出現 定義了重複的 'system.web.extensions/scripting/scriptResourceHandler' 區段 錯誤 解決方法 新增應用程式集區(ApplicationPool...
-
問題 使用 Windows 7 IIS建立FTP 與授權連線 解決方法 建立FTP站台 1.Windows開始=>控制台=>程式集=>開啟或關閉Windows功能=>Internet Infornation Service=>FTP...
-
問題 使用 Math.Sqrt 算出n開根號 解決方法 double _sum=100; int_Sqrt = Math.Sqrt(_sum);
5 則留言:
你好:
想請問 "strFileContent" 是要丟入什麼參數?
不太了解它的用途,謝謝你的回答唷. by Jull
"strFileContent" 是檔案內容,此function是用來上傳CSV(逗號分割的文字檔)
通常你可以用File.ReadAllText去讀某檔案
再請教一下,如果要上傳其他檔案格式(ex: doc,jpg,xml......),也可用這樣的方式上傳嗎? 或是需要做什麼調整? 謝謝你唷. by Jull
"strFileName "是檔案的名稱
example:test.txt,text.csv,text.xml
基本上在傳送的過程中,是用byte再傳的,所以文字內容的都可以傳送
但是如果要傳送類似jpg,bmp,exe之類的檔案,要改方式
'這一段是把要上傳的資料寫到站存位置
Dim swS As New StreamWriter(pathlocal, True, System.Text.Encoding.Default)
swS.WriteLine(strFileContent)
swS.Flush()
swS.Close()
因此把上面寫站存檔的方式改成你要的方式就可以了
瞭解了~謝謝你的分享唷~
by Jull
張貼留言