本文目錄一覽:
- 1、java ftp上傳5G以上大文件,怎麼做
- 2、救火,如何用JAVA實現FTP多文件上傳
- 3、java jdk1.6環境下實現 ftp文件上傳
- 4、java 實現ftp上傳如何創建文件夾?
- 5、java中怎麼實現ftp文件傳輸
- 6、java ftp上傳不了文件怎麼辦
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);
}
}
}
救火,如何用JAVA實現FTP多文件上傳
新建一個web工程,用來測試上傳功能。搭建好從前台訪問後台的整個框架,並測試是否能接受參數。從apache官網上下載jar包,這裡我們需要的jar包共三個,從官網或者其他途徑都可以下載得到。編寫上傳的工具類。工具類主要是涉及兩個方法,首先是連接服務器的方法。和我們平常常用的連接數據庫等的方法類似,需要有服務器名,用戶名和密碼。第二個主要的方法就是上傳的方法,上傳的方法接受一個文件,這裡需要注意的,需要去判斷傳入的是一個文件還是一個文件夾,如果是文件夾,需要循環進行文件上傳處理。寫方法調用工具類里的方法,並測試上傳功能。這裡需要注意的是連接服務器的端口號,20表示連接服務器,21表示有上傳操作。
java jdk1.6環境下實現 ftp文件上傳
通過JDK自帶的API實現
package com.cloudpower.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import sun.net.TelnetInputStream;
import sun.net.TelnetOutputStream;
import sun.net.;
/**
* Java自帶的API對FTP的操作
* @Title:
* @author: 周玲斌
*/
public class Ftp {
/**
* 本地文件名
*/
private String localfilename;
/**
* 遠程文件名
*/
private String remotefilename;
/**
* FTP客戶端
*/
private FtpClient ftpClient;
/**
* 服務器連接
* @param ip 服務器IP
* @param port 服務器端口
* @param user 用戶名
* @param password 密碼
* @param path 服務器路徑
* @author 周玲斌
* @date 2012-7-11
*/
public void connectServer(String ip, int port, String user,
String password, String path) {
try {
/* ******連接服務器的兩種方法*******/
//第一種方法
// ftpClient = new FtpClient();
// ftpClient.openServer(ip, port);
//第二種方法
ftpClient = new FtpClient(ip);
ftpClient.login(user, password);
// 設置成2進制傳輸
ftpClient.binary();
System.out.println(“login success!”);
if (path.length() != 0){
//把遠程系統上的目錄切換到參數path所指定的目錄
ftpClient.cd(path);
}
ftpClient.binary();
} catch (IOException ex) {
ex.printStackTrace();
throw new RuntimeException(ex);
}
}
/**
* 關閉連接
* @author 周玲斌
* @date 2012-7-11
*/
public void closeConnect() {
try {
ftpClient.closeServer();
System.out.println(“disconnect success”);
} catch (IOException ex) {
System.out.println(“not disconnect”);
ex.printStackTrace();
throw new RuntimeException(ex);
}
}
/**
* 上傳文件
* @param localFile 本地文件
* @param remoteFile 遠程文件
* @author 周玲斌
* @date 2012-7-11
*/
public void upload(String localFile, String remoteFile) {
this.localfilename = localFile;
this.remotefilename = remoteFile;
TelnetOutputStream os = null;
FileInputStream is = null;
try {
//將遠程文件加入輸出流中
os = ftpClient.put(this.remotefilename);
//獲取本地文件的輸入流
File file_in = new File(this.localfilename);
is = new FileInputStream(file_in);
//創建一個緩衝區
byte[] bytes = new byte[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();
throw new 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 本地文件路徑(客戶端)
* @author 周玲斌
* @date 2012-7-11
*/
public void download(String remoteFile, String localFile) {
TelnetInputStream is = null;
FileOutputStream os = null;
try {
//獲取遠程機器上的文件filename,藉助TelnetInputStream把該文件傳送到本地。
is = ftpClient.get(remoteFile);
File file_in = new File(localFile);
os = new FileOutputStream(file_in);
byte[] bytes = new byte[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();
throw new 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();
}
}
}
}
public static void main(String agrs[]) {
String filepath[] = { “/temp/aa.txt”, “/temp/regist.log”};
String localfilepath[] = { “C:\\tmp\\1.txt”,”C:\\tmp\\2.log”};
Ftp fu = new Ftp();
/*
* 使用默認的端口號、用戶名、密碼以及根目錄連接FTP服務器
*/
fu.connectServer(“127.0.0.1”, 22, “anonymous”, “IEUser@”, “/temp”);
//下載
for (int i = 0; i filepath.length; i++) {
fu.download(filepath[i], localfilepath[i]);
}
String localfile = “E:\\號碼.txt”;
String remotefile = “/temp/哈哈.txt”;
//上傳
fu.upload(localfile, remotefile);
fu.closeConnect();
}
}
java 實現ftp上傳如何創建文件夾?
準備條件:java實現ftp上傳用到了commons-net-3.3.jar包
首先建立ftphost連接
public boolean connect(String path, String addr, int port, String username, String password) {
try {
//FTPClient ftp = new FTPHTTPClient(addr, port, username, password);
ftp = new FTPClient();
int reply;
;
System.out.println(“連接到:” + addr + “:” + port);
System.out.print();
reply = ;
if (!FTPReply.isPositiveCompletion(reply)) {
;
System.err.println(“FTP目標服務器積極拒絕.”);
System.exit(1);
return false;
}else{
(username, password);
;
;
;
System.out.println(“已連接:” + addr + “:” + port);
return true;
}
} catch (Exception ex) {
ex.printStackTrace();
System.out.println(ex.getMessage());
return false;
}
}
然後再利用ftpclient的makeDirectory方法創建文件夾
public void createDir(String dirname){
try{
;
System.out.println(“在目標服務器上成功建立了文件夾: ” + dirname);
}catch(Exception ex){
System.out.println(ex.getMessage());
}
}
斷開host連接
public void disconnect(){
try {
;
} catch (IOException e) {
e.printStackTrace();
}
}
最後是程序的調用方法
public static void main(String[] args) {
FtpUploadTest ftpupload = new FtpUploadTest();
if(ftpupload.connect(“”, “172.39.8.x”, 20, “administrator”, “abc@123”)){
ftpupload.createDir(“/UPLOAD”);
ftpupload.disconnect();
}
}
java中怎麼實現ftp文件傳輸
package com.quantongfu.;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.util.List;
import org.apache.commons.net.;
import org.apache.log4j.Logger;
import org.apache.log4j.net.SocketServer;
import com.quantongfu.conf.FtpConf;
/**
* @項目名稱: telinSyslog
* @文件名稱:
* @創建日期:2015年9月14日 下午3:22:08
* @功能描述:ftp實體類,用於連接,上傳
* @修訂記錄:
*/
public class Ftp {
private static Logger logger = Logger.getLogger();
private FTPClient ftp;
/**
*
* @param path
* 上傳到ftp服務器哪個路徑下
* @param addr
* 地址
* @param port
* 端口號
* @param username
* 用戶名
* @param password
* 密碼
* @return
* @throws Exception
*/
public boolean connect() throws Exception {
boolean result = false;
ftp = new FTPClient();
int reply;
(FtpConf.FTP_HOST, FtpConf.FTP_PORT);
(FtpConf.FTP_USER_NAME, FtpConf.FTP_PASSWORD);
;
;
reply = ;
if (!FTPReply.isPositiveCompletion(reply)) {
;
return result;
}
if (FtpConf.IS_FTP_DIRECTORY) {
;
}
result = true;
return result;
}
/**
*
* @param files
* 上傳的文件
* @throws Exception
*/
public boolean upload(File file) throws IOException {
FileInputStream input = null;
try {
input = new FileInputStream(file);
boolean b = (file.getName() + “.tmp”, input);
if (b) {
b = (file.getName() + “.tmp”, file.getName());
}
return b;
} catch (Exception e) {
e.printStackTrace();
return false;
} finally {
if (input != null) {
input.close();
}
}
}
/**
*
* @param files
* 上傳的文件
* @throws Exception
*/
public boolean upload(ServerSocket server, File file) throws Exception {
FileInputStream input = null;
try {
if (!file.exists()) {
return true;
}
input = new FileInputStream(file);
boolean b = (server, file.getName() + “.tmp”, input);
if (b) {
b = (file.getName() + “.tmp”, file.getName());
if (b) {
file.delete();
}
}
return b;
} catch (Exception e) {
logger.error(“ftp error” + e.getMessage());
return false;
} finally {
if (input != null) {
try {
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/*斷開連接*/
public void disConnect() {
try {
if (ftp != null) {
;
}
} catch (IOException e) {
e.printStackTrace();
}
}
/*獲取連接*/
public static Ftp getFtp() {
Ftp ftp = new Ftp();
try {
;
} catch (Exception e) {
logger.error(“FTP連接異常” + e.getMessage());
e.printStackTrace();
}
return ftp;
}
/*重連*/
public Ftp reconnect() {
disConnect();
return getFtp();
}
}
使用Apache FtpClient jar包,獲取jar :
java ftp上傳不了文件怎麼辦
準備條件:java實現ftp上傳用到了commons-net-3.3.jar包
首先建立ftphost連接
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public boolean connect(String path, String addr, int port, String username, String password) {
try {
//FTPClient ftp = new FTPHTTPClient(addr, port, username, password);
ftp = new FTPClient();
int reply;
;
System.out.println(“連接到:” + addr + “:” + port);
System.out.print();
reply = ;
if (!FTPReply.isPositiveCompletion(reply)) {
;
System.err.println(“FTP目標服務器積極拒絕.”);
System.exit(1);
return false;
}else{
(username, password);
;
;
;
System.out.println(“已連接:” + addr + “:” + port);
return true;
}
} catch (Exception ex) {
ex.printStackTrace();
System.out.println(ex.getMessage());
return false;
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/300328.html