【Java】解決FTPClient上傳中文目錄出現中文名亂碼問題
問題描述:
使用org.apache.commons.net.ftp.FTPClient建立中文目錄、上傳中文檔名時,目錄名及檔名中的中文顯示為“??”。
原因:
FTP協議裡面,規定檔名編碼為iso-8859-1,所以目錄名或檔名需要轉碼。
解決方案:
1.將中文的目錄或檔名轉為iso-8859-1編碼的字元。參考程式碼:
複製程式碼 程式碼如下:
String name="目錄名或檔名"; name=new String(name.getBytes("GBK"),"iso-8859-1");// 轉換後的目錄名或檔名。
2.設定linux環境變數
複製程式碼 程式碼如下:
export LC_ALL="zh_CN.GBK"
export LANG="zh_CN.GBK"
例項:
複製程式碼 程式碼如下:
public boolean upLoadFile(File file, String path, String fileName) throws IOException { boolean result = false; FTPClient ftpClient = new FTPClient(); try { ftpClient.connect(confService.getConfValue(PortalConfContants.FTP_CLIENT_HOST)); ftpClient.login(confService.getConfValue(PortalConfContants.FTP_CLIENT_USERNAME), confService .getConfValue(PortalConfContants.FTP_CLIENT_PASSWORD)); ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); // make directory if (path != null && !"".equals(path.trim())) { String[] pathes = path.split("/"); for (String onepath : pathes) { if (onepath == null || "".equals(onepath.trim())) { continue; } onepath=new String(onepath.getBytes("GBK"),"iso-8859-1"); if (!ftpClient.changeWorkingDirectory(onepath)) { ftpClient.makeDirectory(onepath); ftpClient.changeWorkingDirectory(onepath); } } } result = ftpClient.storeFile(new String(fileName.getBytes("GBK"),"iso-8859-1"), new FileInputStream(file)); } catch (Exception e) { e.printStackTrace(); } finally { ftpClient.logout(); } return result; }
相關推薦
【Java】解決FTPClient上傳中文目錄出現中文名亂碼問題
Java中FTPClient上傳中文目錄、中文檔名亂碼問題解決方法 問題描述: 使用org.apache.commons.net.ftp.FTPClient建立中文目錄、上傳中文檔名時,目錄名及檔
【springboot】spring-boot上傳檔案MultiPartFile獲取不到檔案問題解決
1.現象是在spring-boot里加入commons-fileupload jar並且配置了mutilPart的bean,在upload的POST請求後,發現multipartRequest.getFiles=null,有點奇怪,查了文件資料才解決。
【Mac】之svn上傳文件命令
ant ack 提示 gin http commit add https svn 創建文件後,進入文件夾下: ①先checkoutsvn地址: svn checkout https://xxxx:0000/svn/CM_B2B_Document/06_Testing
【Java】解決Gson解析資料時int自動轉化為double問題
Gson可以將json字串轉換時, 原json字串中的int , long型的數字會預設被轉換成double型別 , 導致數字會多一個小數點 , 如 1 會轉成 1.0。 解決方法: 只需將Gson gson = new Gson();換成下面這個 Gson gson = n
解決FTPClient上傳檔案為空,顯示0位元組
JAVA使用FTPClient上傳檔案時總是為空 分析:Port模式,是客戶端C在本地開啟一個埠等服務端S去連線建立資料連線;而Pasv模式就是服務端S開啟一個埠等待客戶端C去建立一個數據連線。 解決:預設情況下,FTPCLIENT用的是port模式,可以在FTPCLIE
【FastDFS】maven專案上傳圖片到FastDFS伺服器
一:前言 FastDFS伺服器的搭建都是運維人員完成的,開發人員只需知道tracker伺服器IP地址和埠號即可 二:環境裝備 1.為了程式設計成員在應用程式中使用FastDFS,官網提供了java版的客戶端 但是中央倉庫中沒有,我們可以下載fas
循序漸進學.Net Core Web Api開發系列【5】:檔案上傳
系列目錄 一、概述 本篇介紹通過.NET core WebApi實現檔案上傳。 二、Controller端程式碼 直接上程式碼: [Route("api/files")] [Produces("application/json")] public
【Java】下載網路上的圖片並儲存到本地目錄
import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.net.URL; impo
【php】檔案的上傳與下載
php檔案的上傳與下載其實不難的,就那麼的幾行程式碼,比起JSP的要簡單得多,具體可以參考:《【Servlet】利用Servlet3.0標準與JSTL表示式實現檔案上傳系統,支援圖片上傳後顯示》(點選開啟連結);《【Jsp】把Java寫到Respond輸出流裡面供使用者下載
【Git】從本地上傳到github的文章顯示圖片的方法
雖然這段時間一直在git上上傳程式碼或者是文章,但是還沒有試過在github上面上傳圖片,前兩天寫了一篇部落格,裡面有很多插圖,就想著是不是可以一塊上傳到github上面去呢? 中間失敗的各種方法就不贅述,下面說一下成功的兩種方法: 方法一 : 將圖片單獨
【Java】form表單提交中文亂碼
如果框架沒有支援的話,自己在Java 後端做一下轉碼操作也可以解決: // new String(byte[] target, String characterSet) 將目標位元組陣列t
【Java】使用Notepad+編輯帶中文的Java檔案後,編譯的問題
使用Notepad+編輯帶中文的Java檔案在編譯後會出現如下的error messaget:\>javac Employee.java Employee.java:9: error: unmappable character for encoding GBK /
【Dongle】【SSH】商品圖片上傳
利用SSH框架,通過模型驅動將商品資訊自動帶回,但是由於圖片儲存的路徑,故而需要先將圖片上傳到伺服器,然後轉換成伺服器中的路徑。 在web頁面上上傳檔案到伺服器,而由於新增商品不僅僅是儲存圖片,還要獲取商品名稱、價格、型別等等資訊,故而採用表單的
【SpringMVC】解決@ResponseBody註解返回中文亂碼
@ResponseBody @RequestMapping(value="/toPerBirthday.do") public String getIndexPerBasicInfo(HttpServletRequest request, HttpServletResponse response,M
【java】解決httpurlconnection 亂碼
拿到流後如果不指定讀取編碼方式,就像下面這樣: InputStream is = conn.getInputStream();//拿到輸入流 InputStreamReader isr = new InputStreamReader(is); BufferedRea
【Java】 劍指offer(39) 陣列中出現次數超過一半的數字 《劍指Offer》Java實現合集 《劍指Offer》Java實現合集
本文參考自《劍指offer》一書,程式碼採用Java語言。 更多:《劍指Offer》Java實現合集 題目 陣列中有一個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入一個長度為9的陣列{1, 2, 3, 2, 2, 2, 5, 4, 2}。由於數字2在陣列中出現
【Java】檔案上傳及下載、限制檔案大小
1、後端部分 Controller程式碼 // 上傳 @PostMapping("upload") @ResponseBody public Result upload(MultipartFile files, I
【java】刪除上傳到伺服器的臨時檔案
刪除上傳到伺服器的臨時檔案 前言 此篇博文主要說明此前在解析excel檔案中上傳的excel檔案進行一個處理。 說明 伺服器 resin伺服器 程式碼操作 進行的程式碼實現全在js
【Python小白】向PyPI上傳程式碼出現問題,報401或者410如何解決(主要是上傳的URL不正確)!
參考:《Head First Python》向PyPI上傳程式碼一章節環境:Win7+Python3.5 作為一個剛接觸Python的一名小白,在閱讀《Head First Python》向PyPI上傳程式碼一章節時,上傳遇見了URL不對,各種度娘,發現沒有太多關於
利用FTPClient上傳的檔案中中文名字亂碼解決辦法
新增下面這一段: if (FTPReply.isPositiveCompletion(ftpClient.sendCommand( "OPTS UTF8", "ON"))) {// 開啟伺服器對UTF-8的支援,如果伺服器支援就用UTF-8編碼,否則就使用本地編碼(GBK)