當前位置:首頁 » 文件管理 » javaftp大文件

javaftp大文件

發布時間: 2022-11-13 22:12:45

Ⅰ 救火,如何用java實現ftp多文件上傳

新建一個web工程,用來測試上傳功能。搭建好從前台訪問後台的整個框架,並測試是否能接受參數。從apache官網上下載jar包,這里我們需要的jar包共三個,從官網或者其他途徑都可以下載得到。編寫上傳的工具類。工具類主要是涉及兩個方法,首先是連接伺服器的方法。和我們平常常用的連接資料庫等的方法類似,需要有伺服器名,用戶名和密碼。第二個主要的方法就是上傳的方法,上傳的方法接受一個文件,這里需要注意的,需要去判斷傳入的是一個文件還是一個文件夾,如果是文件夾,需要循環進行文件上傳處理。寫方法調用工具類里的方法,並測試上傳功能。這里需要注意的是連接伺服器的埠號,20表示連接伺服器,21表示有上傳操作。

Ⅱ java中怎麼實現ftp文件傳輸

packagecom.quantongfu.ftp.ftp;

importjava.io.File;
importjava.io.FileInputStream;
importjava.io.IOException;
importjava.net.ServerSocket;
importjava.util.List;

importorg.apache.commons.net.ftp.FTPReply;
importorg.apache.log4j.Logger;
importorg.apache.log4j.net.SocketServer;

importcom.quantongfu.conf.FtpConf;

/**
*@項目名稱:telinSyslog
*@文件名稱:Ftp.java
*@創建日期:2015年9月14日下午3:22:08
*@功能描述:ftp實體類,用於連接,上傳
*@修訂記錄:
*/
publicclassFtp{
privatestaticLoggerlogger=Logger.getLogger(Ftp.class);
privateFTPClientftp;

/**
*
*@parampath
*上傳到ftp伺服器哪個路徑下
*@paramaddr
*地址
*@paramport
*埠號
*@paramusername
*用戶名
*@parampassword
*密碼
*@return
*@throwsException
*/
publicbooleanconnect()throwsException{
booleanresult=false;
ftp=newFTPClient();
intreply;
ftp.connect(FtpConf.FTP_HOST,FtpConf.FTP_PORT);
ftp.login(FtpConf.FTP_USER_NAME,FtpConf.FTP_PASSWORD);
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
ftp.setDataTimeout(60000);
reply=ftp.getReplyCode();
if(!FTPReply.isPositiveCompletion(reply)){
ftp.disconnect();
returnresult;
}
if(FtpConf.IS_FTP_DIRECTORY){
ftp.changeWorkingDirectory(FtpConf.FTP_DIRECTORY);
}
result=true;
returnresult;
}

/**
*
*@paramfiles
*上傳的文件
*@throwsException
*/
publicbooleanupload(Filefile)throwsIOException{
FileInputStreaminput=null;
try{
input=newFileInputStream(file);
booleanb=ftp.storeFile(file.getName()+".tmp",input);
if(b){
b=ftp.rename(file.getName()+".tmp",file.getName());
}
returnb;
}catch(Exceptione){
e.printStackTrace();
returnfalse;
}finally{
if(input!=null){
input.close();
}
}
}

/**
*
*@paramfiles
*上傳的文件
*@throwsException
*/
publicbooleanupload(ServerSocketserver,Filefile)throwsException{
FileInputStreaminput=null;
try{
if(!file.exists()){
returntrue;
}
input=newFileInputStream(file);
booleanb=ftp.storeFile(server,file.getName()+".tmp",input);
if(b){
b=ftp.rename(file.getName()+".tmp",file.getName());
if(b){
file.delete();
}
}
returnb;
}catch(Exceptione){
logger.error("ftperror"+e.getMessage());
returnfalse;
}finally{
if(input!=null){
try{
input.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
}
}
/*斷開連接*/
publicvoiddisConnect(){
try{
if(ftp!=null){
ftp.disconnect();
}
}catch(IOExceptione){
e.printStackTrace();
}

}
/*獲取連接*/
publicstaticFtpgetFtp(){
Ftpftp=newFtp();
try{
ftp.connect();
}catch(Exceptione){
logger.error("FTP連接異常"+e.getMessage());
e.printStackTrace();
}
returnftp;
}
/*重連*/
publicFtpreconnect(){
disConnect();
returngetFtp();
}
}

使用Apache FtpClient jar包,獲取jar : http://commons.apache.org/net/

Ⅲ JAVA FTP 大文件 上傳

把JAVA壓縮,用文件分割工具,分割成多個小壓縮包,再一個一個上傳到FTP。

Ⅳ java從FTP上下載文件大小大概10M左右,ftpClient.setBufferSize(1024)要設置多大的呢

幾k到1m 這個是臨時的緩沖

Ⅳ java ftpClient怎麼上傳大文件

ackage downloadMap;

import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.F

Ⅵ 用java怎麼判斷FTP上的文件大小改變了

日誌目錄:
已經架設了一個IIS下的FTP伺服器,應該如何查看連接日誌?
答:利用IIS架設的FTP伺服器不能實時看到連接的具體情況,不過可以在C:\Winnt\system32\logfiles目錄中查看到連接上FTP伺服器的IP地址、時間等日誌信息。

如何開啟日誌:
在默認FTP站點屬性對話框中,切換到「FTP站點」標簽頁,一定要確保「啟用日誌記錄」選項被選中,這樣就可以在「事件查看器」中查看FTP日誌記錄了。

我感覺,這種方法也不是實時的,你只是將輪詢文件變成了輪詢日誌,一樣的感覺。

你如果想變成實時的,就是說文件大小一發生改變就通知你。我想到的辦法是這樣的。

你再做一個系統,這個系統可以較大頻率的去輪詢日誌或者文件,因為這個系統可以架設在別的機器上,所以不會影響你系統的性能。然後在你系統中建立一個webservice,提供下載那個文件的服務,當那個系統發現更改時調用你的webservice,你就可以下載了。

我覺得這只是一種折中的辦法,而且也比較費事,如果沒有實時的要求,還是定時輪詢的好。

PS:
實話說不知道你為什麼要檢驗文件的大小,有時內容改變不一定大小會變得。

你可以記錄文件上一次的修改時間。然後當這個發生改變時再取就是了。

Ⅶ java ftp上傳5G以上大文件,怎麼做

java上傳可以使用common-fileupload上傳組件的。common-fileupload是jakarta項目組開發的一個功能很強大的上傳文件組件下面先介紹上傳文件到伺服器(多文件上傳):import javax.servlet.*; import javax.servlet.http.*; import java.io.*;

Ⅷ java代碼ftp.storefile傳送文件,文件太大為什麼會突然終止

可能是你的電腦文件系統,FAT32隻支持4G以下,

Ⅸ java ftp上傳5G以上大文件,怎麼做

java上傳可以使用common-fileupload上傳組件的。common-fileupload是jakarta項目組開發的一個功能很強大的上傳文件組件下面先介紹上傳文件到伺服器(多文件上傳):import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.util.regex.*;
import org.apache.commons.fileupload.*;
public class upload extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GB2312";
//Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out=response.getWriter();
try {
DiskFileUpload fu = new DiskFileUpload();
// 設置允許用戶上傳文件大小,單位:位元組,這里設為2m
fu.setSizeMax(2*1024*1024);
// 設置最多隻允許在內存中存儲的數據,單位:位元組
fu.setSizeThreshold(4096);
// 設置一旦文件大小超過getSizeThreshold()的值時數據存放在硬碟的目錄
fu.setRepositoryPath("c:\\windows\\temp");
//開始讀取上傳信息
List fileItems = fu.parseRequest(request);
// 依次處理每個上傳的文件
Iterator iter = fileItems.iterator();//正則匹配,過濾路徑取文件名
String regExp=".+\\\\(.+)$";//過濾掉的文件類型
String[] errorType={".exe",".com",".cgi",".asp"};
Pattern p = Pattern.compile(regExp);
while (iter.hasNext()) {
FileItem item = (FileItem)iter.next();
//忽略其他不是文件域的所有表單信息
if (!item.isFormField()) {
String name = item.getName();
long size = item.getSize();
if((name==null||name.equals("")) && size==0)
continue;
Matcher m = p.matcher(name);
boolean result = m.find();
if (result){
for (int temp=0;temp if (m.group(1).endsWith(errorType[temp])){
throw new IOException(name+": wrong type");
}
}
try{//保存上傳的文件到指定的目錄//在下文中上傳文件至資料庫時,將對這里改寫
item.write(new File("d:\\" + m.group(1))); out.print(name+" "+size+"
");
}
catch(Exception e){
out.println(e);
} }
else
{
throw new IOException("fail to upload");
}
}
}
}
catch (IOException e){
out.println(e);
}
catch (FileUploadException e){
out.println(e);
}

}
}

熱點內容
搭建一個流媒體伺服器 發布:2024-05-05 20:40:59 瀏覽:666
2017中超資料庫 發布:2024-05-05 20:37:25 瀏覽:378
編程包游戲 發布:2024-05-05 20:25:00 瀏覽:608
系統鎖屏忘記密碼如何設置 發布:2024-05-05 20:18:07 瀏覽:759
xp怎樣訪問win7 發布:2024-05-05 20:17:07 瀏覽:870
c語言訪問http 發布:2024-05-05 20:04:14 瀏覽:874
什麼可以配置波爾多葉 發布:2024-05-05 20:00:32 瀏覽:964
cgxrar解壓密碼 發布:2024-05-05 19:47:24 瀏覽:634
ubuntu編譯linux內核 發布:2024-05-05 19:46:05 瀏覽:8
php靜態方法調用對象 發布:2024-05-05 19:24:30 瀏覽:367