1. 程式人生 > >Apache FTPClient上傳檔案時的問題及解決

Apache FTPClient上傳檔案時的問題及解決


用Apache的FTPClient上傳檔案時發現一個問題,就是上傳txt檔案沒問題,但上傳zip檔案時檔案會被破壞,查了一下原因,原來是這樣:

因為RFC959中規定了預設的傳輸模式應該是ASCII的,org.apache.commons.net.ftp.FTPClient實現也遵守此標準。所以org.apache.commons.net.ftp.FTPClient在預設情況下是按ASCII形式進行傳輸的,如果你是傳輸的BINARY二進位制檔案(如zip),那麼上傳完後的檔案就會被破壞,但是傳輸ASCII檔案(如txt)是沒有問題的。
 
所以如果你是傳輸的BINARY二進位制檔案的話,就需要在建立連線、登陸後,接下來設定檔案型別,程式碼示例如下:
ftpclient.connect(host);
ftpclient.login(user, password);
ftpclient.setFileType(FTPClient.BINARY_FILE_TYPE);

這下就OK啦

相關推薦

Apache FTPClient檔案的問題解決

用Apache的FTPClient上傳檔案時發現一個問題,就是上傳txt檔案沒問題,但上傳zip檔案時檔案會被破壞,查了一下原因,原來是這樣: 因為RFC959中規定了預設的傳輸模式應該是ASCII的,org.apache.commons.net.ftp.FTPClient

FTPClient檔案大小為0位元組的問題解決

今天通過FTPClient上傳圖片時出現,雖然無錯誤出現但是上傳到伺服器端的圖片大小為0。 之前的程式碼 public static boolean uploadFile(String host, int port, String username, String password,S

解決FTPClient檔案為空,顯示0位元組

JAVA使用FTPClient上傳檔案時總是為空 分析:Port模式,是客戶端C在本地開啟一個埠等服務端S去連線建立資料連線;而Pasv模式就是服務端S開啟一個埠等待客戶端C去建立一個數據連線。 解決:預設情況下,FTPCLIENT用的是port模式,可以在FTPCLIE

解決檔案 nginx 413 Request Entity Too Large 錯誤

一個使用Tomcat 釋出的站點,使用Nginx做了代理,在上傳檔案時發生以下錯誤:<html> <head><title>413 Request Entity Too Large</title></head> &l

解決了uploadify檔案,某些瀏覽器(版本)中,session丟失導致失敗的問題

一、問題近期,在做檔案上傳時,使用了uploadify這個基於flash的檔案上傳元件,版本號為3.2.1。在IE下,一切正常,但是當切換到某些低版本chrome瀏覽器後,發生了檔案不能上傳的問題。通過除錯和問題定位,發現是session丟失,導致服務端不能識別登入狀態,所以

解決向Linux檔案winSCP報錯誤碼3(如何用root帳號登入winscp)

       今天我要將電腦中的檔案通過SSH上傳到Linux伺服器中,使用工具WinSCP,一開始我使用普通使用者登入,發現登入成功之後並不能通過拖拽上傳檔案,會報下面的這種錯誤:

怎麼解決檔案winSCP報錯誤碼3(如何用root帳號登入winscp)

常見錯誤 解決方案   (給ubuntu開啟root帳號,並可ssh登入) 演示: linux系統為ubuntu 14.04 將電腦中的檔案通過SSH上傳到雲伺服器的時候,會提示 ‘’‘ 無權訪問。 錯誤碼:3 伺服器返回的錯誤訊息:Permission denied ’

robot framework 遇到頁面彈出框檔案處理

最近在做公司公司頁面自動化的時候遇到上傳檔案的彈出框,如下圖,在點選選擇檔案的時候回彈出一個檔案選擇視窗,記錄下處理方法 下載安裝AutoIt 軟體,安裝python 安裝AutoItLibrary,這個過程網上一大堆,不做敘述 將AutoItLibrary匯入到robotframew

非同步檔案獲取進度資訊

轉自:https://javaweb.io/post/63 XMLHttpRequest例項的upload屬性可以新增一個事件progress,通過該事件回撥可以獲取到上傳進度資訊 原生上傳 //獲取檔案筐的檔案集合 let files = document.getElem

dede檔案亂碼問題解決

修改下列兩個檔案: /include/dialog/select_soft_post.php/include/dialog/select_soft.php   改: select_soft.php檔案第108行後面新增一句話: $file = mb_convert_encoding($fi

Express、Nodejs伺服器檔案出現Unexpected field

我出現這個問題是因為用了 multer模組   死活讀不到上傳的檔案, 後來查了說是這個模組沒法讀取檔案  於是採用了 connect-multipary 要上傳檔案  不要用multer ! 要上傳檔案  不要用multer !

php 檔案Internal Server Error或者mod_fcgid: HTTP request length 136136 (so far) exceeds MaxRequestLen

php檔案上傳時遇到這個坑:Internal Server Error,查了Apache下的日誌資訊,才知道: mod_fcgid: HTTP request length 136136 (so fa

使用表單在springMVC的後臺檔案遇到500錯誤:The current request is not a multipart request

一、我出現錯誤的原因 是在前端的表單屬性裡沒有加入這一屬性enctype="multipart/form-data",然後繼續執行Tomcat, 上傳還是報一樣的錯誤,繼續認真觀看,發現我使用表單的預設提交方式,所以把提交方式改為method="post", 再次執行T

SpringCloud專案檔案中文檔名亂碼,檔案下載

一、檔案上傳亂碼 SpringCloud,路由zuul。 今天在做一個上傳檔案的功能,檔案傳到後臺getOriginalFilename()時檔名中文亂碼。 嘗試了以下2種辦法都不行: 對檔名重新編碼:fileName = new String(fil

WordPress安裝主題失敗、檔案失敗問題解決辦法

因為阿里雲伺服器總是提示某個網站有木馬,而且這個網站很low,所以刪除原來的原始碼,重新安裝下。但是安裝後無法更新主題,用了在CSDN上看到的方法,直接在WordPress官網上下載主題,然後上傳到伺服器的方法,但是上傳檔案又會出問題。 其實看:https://blog.csdn.net/q

git檔案出現origin does not to be a git repository

最近上傳程式碼到GitHub的時候,當我輸入 git push -u origin master的時候,它提示: origin does not to be a git repository 重新輸入一次:git remote add origin [email prote

asp.net(c#)檔案檢測檔案型別方法小結

using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using Syst

檔案如何去除重複的資料

如上傳學生資訊時確保檔案中的學號與資料庫中學號不是重複的 while(($row = fgetcsv($fp,1000,',')) !==false){                if(in_array($row[

tomcat和nginx的檔案失敗的解決方法

TOMCAT     問題的根源:tomcat預設設定能接收HTTP POST請求的大小最大為2M,如果你的POST請求傳遞的資料大於2M,就會報錯誤。     解決的辦法:修改tomcat的配置檔案C:/MinyooCMS/tomcat/conf/server.xml(或

jquery的非同步提交表單(非同步檔案jquery.form.js檔案注意事項

方法一:jquery的ajax方式,通過FormaData獲取表單資料 (1)這種方式只需要jquery-1.7.js外掛; (2)通過`jquery中的FormaData類: 自動搜尋表單資訊(表單內沒有name屬性的input不會被搜尋到),IE<=9