Jdk1.7自帶的FTP檔案上傳下載
Java程式碼
- package com.boonya.upload.util.simple;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.net.InetSocketAddress;
- import sun.net.TelnetInputStream;
- import sun.net.TelnetOutputStream;
- import sun.net.ftp.FtpClient;
- import sun.net.ftp.FtpProtocolException;
- /**
- * Java自帶的API對FTP的操作
- * @Jdk:version 1.7
- * @Title:Ftp.java
- * @author: boonya
- * @notice: 貌似此方法有個缺陷,不能操作大檔案
- */
- publicclass FtpJdk
- {
- /**
- *
- * 本地檔名
- */
- private String localfilename;
- /**
- *
- * 遠端檔名
- */
- private String remotefilename;
- /**
- *
- * FTP客戶端
- */
- private FtpClient ftpClient;
- /**
- * 伺服器連線
- *
- * @param ip
- * 伺服器IP
- * @param port
- * 伺服器埠
- * @param user
- * 使用者名稱
- * @param password
- * 密碼
- * @param path
- * 伺服器路徑
- * @throws FtpProtocolException
- *
- */
- publicvoid connectServer(String ip, int port, String user, String password, String path) throws FtpProtocolException
- {
- try
- {
- /* ******連線伺服器的兩種方法****** */
- // 第一種方法
- /*
- * ftpClient =FtpClient.create();
- * ftpClient.connect(new InetSocketAddress(ip, port));
- */
- // 第二種方法
- ftpClient = FtpClient.create(ip);
- ftpClient.login(user, null, password);
- // 設定成2進位制傳輸
- ftpClient.setBinaryType();
- System.out.println("login success!");
- if (path.length() != 0)
- {
- // 把遠端系統上的目錄切換到引數path所指定的目錄
- ftpClient.changeDirectory(path);
- }
- ftpClient.setBinaryType();
- } catch (IOException ex)
- {
- ex.printStackTrace();
- thrownew RuntimeException(ex);
- }
- }
- /**
- * 關閉連線
- *
- */
- publicvoid closeConnect()
- {
- try
- {
- ftpClient.close();
- System.out.println("disconnect success");
- } catch (IOException ex)
- {
- System.out.println("not disconnect");
- ex.printStackTrace();
- thrownew RuntimeException(ex);
- }
- }
- /**
- *
- * 上傳檔案
- *
- * @param localFile
- * 本地檔案
- * @param remoteFile
- * 遠端檔案
- * @throws FtpProtocolException
- */
- publicvoid upload(String localFile, String remoteFile) throws FtpProtocolException
- {
- this.localfilename = localFile;
- this.remotefilename = remoteFile;
- TelnetOutputStream os = null;
- FileInputStream is = null;
- try
- {
- // 將遠端檔案加入輸出流中
- os = (TelnetOutputStream) ftpClient.putFileStream(this.remotefilename, true);
- // 獲取本地檔案的輸入流
- File file_in = new File(this.localfilename);
- is = new FileInputStream(file_in);
- // 建立一個緩衝區
- byte[] bytes = newbyte[1024];
- int c;
- while ((c = is.read(bytes)) != -1)
- {
- os.write(bytes, 0, c);
- }
- System.out.println("upload success");
- } catch (IOException ex)
- {
- System.out.println("not upload");
- ex.printStackTrace();
- thrownew RuntimeException(ex);
- } finally
- {
- try
- {
- if (is != null)
- {
- is.close();
- }
- } catch (IOException e)
- {
- e.printStackTrace();
- } finally
- {
- try
- {
- if (os != null)
- {
- os.close();
- }
- } catch (IOException e)
- {
- e.printStackTrace();
- }
- }
- }
- }
- /**
- *
- * 下載檔案
- *
- * @param remoteFile
- * 遠端檔案路徑(伺服器端)
- * @param localFile
- * 本地檔案路徑(客戶端)
- * @throws FtpProtocolException
- *
- */
- publicvoid download(String remoteFile, String localFile) throws FtpProtocolException
- {
- TelnetInputStream is = null;
- FileOutputStream os = null;
- try
- {
- // 獲取遠端機器上的檔案filename,藉助TelnetInputStream把該檔案傳送到本地。
- is = (TelnetInputStream) ftpClient.getFileStream(remoteFile);
- File file_in = new File(localFile);
- os = new FileOutputStream(file_in);
- byte[] bytes = newbyte[1024];
- int c;
- while ((c = is.read(bytes)) != -1)
- {
- os.write(bytes, 0, c);
- }
- System.out.println("download success");
- } catch (IOException ex)
- {
- System.out.println("not download");
- ex.printStackTrace();
- thrownew RuntimeException(ex);
- } finally
- {
- try
- {
- if (is != null)
- {
- is.close();
- }
- } catch (IOException e)
- {
- e.printStackTrace();
- } finally
- {
- try
- {
- if (os != null)
- {
- os.close();
- }
- } catch (IOException e)
- {
- e.printStackTrace();
- }
- }
- }
- }
- /**
- * 函式入口
- *
- * @param agrs
- */
- publicstaticvoid main(String agrs[])
- {
- String filepath[] =
- { "/temp/aa.txt", "/temp/regist.log" };
- String localfilepath[] =
- { "C:\\tmp\\1.txt", "C:\\tmp\\2.log" };
- FtpJdk ftp = new FtpJdk();
- /*
- * 使用預設的埠號、使用者名稱、密碼以及根目錄連線FTP伺服器
- */
- try
- {
- ftp.connectServer("127.0.0.1", 22, "boonya", "[email protected]", "/temp");
- } catch (FtpProtocolException e)
- {
- e.printStackTrace();
- }
- // 下載
- for (int i = 0; i < filepath.length; i++)
- {
- try
- {
- ftp.download(filepath[i], localfilepath[i]);
- } catch (FtpProtocolException e)
- {
- e.printStackTrace();
- }
- }
- String localfile = "E:\\contact.txt";
- String remotefile = "/temp/records.txt";
- // 上傳
- try
- {
- ftp.upload(localfile, remotefile);
- } catch (FtpProtocolException e)
- {
- e.printStackTrace();
- }
- ftp.closeConnect();
- }
- }
相關推薦
Jdk1.7自帶的FTP檔案上傳下載
Ftp相關的類庫很多,這裡以JDK自帶的FTP上傳下載功能為例。 Java程式碼 package com.boonya.upload.util.simple; import java.io.File; import java.io.FileInputStrea
java ftp檔案上傳下載刪除
package ftp; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStre
java/struts/Servlet檔案下載與ftp檔案上傳下載
String s1=transUrl; // transUrl是前臺接受的引數,get接受的引數tomcat一律使用iso-8859-1編碼 transUrl=new String(transUrl.getBytes("ISO-8859-1"),"utf-8");//程式中要使用的檔名,必須轉換為gbk
Shell FTP檔案上傳下載
1.上傳檔案到ftp 建立一個shell檔案:touch upload.sh 修改為可執行檔案:chmod +x upload.sh 編輯:vim upload.sh,指令碼內容如下 cd /user/directory/target export putfile=y
Python3的FTP檔案上傳下載
關於 FTP 和 SFTP 服務搭建,參考連結 另關於 Python3 的 SFTP 檔案上傳下載,參見我的另外一篇部落格,連結 注:程式碼中的變數命名規則採用的是“駝峰式”命名法,這可能帶來程式碼檢查提示,在PyCharm中可以Alt + Enter忽略此類檢查
用ASP.NET的FileUpload控制元件實現帶對話方塊的FTP檔案上傳功能
最近不得已開始做網頁,一個ASP.NET的專案,需要實現FTP上傳功能,於是上網廣搜程式碼,發現FTP上傳的程式碼到處都是,隨手拈來,可是一般來說客戶端上傳檔案都需要一個檔案選擇對話方塊,正好自帶的FileUpload控制元件能夠實現。但是網上搜到FileUpl
關於ThinkCMF自帶插件上傳不了圖片的解決方法
.cn 方法 插件 thinkcmf 解決方法 刪除 打開 blog 文件 原因:是因為刪除了存放圖片的文件夾,這是cmf在windows的一個BUG 解決方法: 再到php.ini裏把 這個打開就解決了關於ThinkCMF自帶插件上傳不了圖片的解決方法
Android關於FTP檔案上傳和下載功能詳解
Android關於FTP檔案上傳和下載功能詳解 更新時間:2017年09月21日 11:41:14 作者:一諾的祕密花園 我要評論 這篇文章主要為大家詳細介紹了Android關於FTP檔案上傳和下載功能,具有一定的參考價值,感興趣
【高效開發外掛】09 FTPUtil FTP 檔案上傳工具類
package com.yuu.mall.util; import org.apache.commons.net.ftp.FTPClient; import org.slf4j.Logger; import org.slf4j.LoggerFactory;
自定義input檔案上傳樣式
檔案上傳是我們經常會用到的功能,但是原生的input樣式太醜了,能不能自定義一個input檔案上傳樣式呢? 我這裡寫了兩種方法,form表單提交跟ajax非同步提交都沒有問題,自動上傳或者點選上傳按鈕上傳也都沒問題 先看效果: 程式碼貼出來: 方法1 <!--
Java 實現ftp 檔案上傳、下載和刪除
本文利用apache ftp工具實現檔案的上傳下載和刪除。具體如下: 1、下載相應的jar包 commons-net-1.4.1.jar 2、實現程式碼如下: public class FtpUtils { //ftp伺服器地址
寶塔-PHP-伺服器-資料庫-FTP-檔案上傳 問題集
簡介: 今天分享一下自己寫的筆記,最近部署伺服器所遇到的各種問題,比較典型的問題都寫在了筆記裡面,現在我把筆記分享給出來,希望可以給大家一點幫助~ 問題目錄: 1.寶塔設定 伺服器 本地資料庫、RDS雲資料庫 連線不上 2.寶塔設定 伺服器 FTP無法連線
Hessian4.0.7+Spring3.2.2檔案上傳
最近用Hessian4.0.7做檔案上傳,先給出自己做試驗的樣例程式碼,寫在tomcat7下,採用servlet3.0,配置程式碼如下: ** * 基於Servlet3.0的,相當於以前<b>web.xml</b>
centos6.5 ftp檔案上傳遇到的問題彙總
1、ftp 192.168.1.* -bash: ftp: command not found 解決方案:ftp命令沒有安裝 # yum install ftp 2、ftp: connect: 拒絕連線 解決方案: (1
java 中 FtpClient 實現 FTP 檔案上傳、下載
package ftp; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileWrit
java+jsp程式碼實現從FTP伺服器上傳下載檔案
首先宣告一下。jsp從ftp伺服器上面下載檔案,有兩種方法1.直接給出檔案的地址 2.將檔案作為位元組流返回給瀏覽器 一 、先說第一種吧(這種發放很簡單)。 1.直接使用一個超連結:<a href='ftp://FTP使用者名稱:密碼@IP地址:埠號+ 後面是路徑 (
十八.Python模擬FTP檔案上傳
Python 模擬FTP斷點續傳併發伺服器 #配置檔案 #伺服器配置檔案 [server_config] ip=127.0.0.1 port=8006 buffersize=1024 encoding=utf-8 #伺服器使用者資料
FTP檔案上傳
public class FTPUtil { private static final Logger logger = LoggerFactory.getLogger(FTPUtil.class); private static String ftpIp = PropertiesUtil
FTP檔案上傳demo
該demo主要是封裝了MS的Wininet.dll,方便FTP檔案上傳, 解決了在XP系統下面InternetConnect()介面在FTP伺服器不可用,連線超時嚴重,且不可控的問題。 該demo在WIN7 64 和XP 32 自測通過。 完整工程原始碼下載地址: --
用Java實現FTP批量大檔案上傳下載(一)
本文介紹了在Java中,如何使用Java現有的可用的庫來編寫FTP客戶端程式碼,並開發成Applet控制元件,做成基於Web的批量、大檔案的上傳下載控制元件。文章在比較了一系列FTP客戶庫的基礎上,就其中一個比較通用且功能較強的j-ftp類庫,對一些比較常見的功能如進度條、