當前位置:首頁 » 文件管理 » java上傳ftp時500

java上傳ftp時500

發布時間: 2024-11-30 17:47:31

java上傳文件大小限制(java上傳文件大小限制怎麼解決)

java類中如何控制用戶上傳的圖片大小不能超過100k-CSDN論壇

ErrMsg=ErrMsg+ 圖片文件大小超過限制。

*1024也就是100K你如果要大的話把100變大就好了。

照片超過100K在上傳時要求小魚100K,可以通過photoshop軟體來進行調整。在PS軟體中打開該圖片重新進行保存時,將圖片大小設置為小於一定的大小即可。

用JAVA基於ftpClient類開發時有沒有對上傳文件時發送數據大小的限制的接...

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

在後台action中判斷,把上傳的文件流用位元組讀出來,判斷這個文件的位元組流大小。

setBufferSize():設置將發送到客戶端的數據的緩沖區大小.根據你本地存貯大小進行填寫吧。

sun.net..,該類庫主要提供了用於建立FTP連接的類。利用這些類的方法,編程人員可以遠程登錄到FTP伺服器,列舉該伺服器上的目錄,設置傳輸協議,以及傳送文件。

java上傳和下載的文件大小不同

1、不算。。windows系統的文件判斷和java中文件大小判斷不一樣。。windows中文件大小不足1kb有可能會顯示為1kb但是java中如果是int類型很可能只會顯示0KB0位元組不代表沒有該文件,比如空文件這個就很正常了。

2、在後台action中判斷,把上傳的文件流用位元組讀出來,判斷這個文件的位元組流大小。

3、publicvoidwrite(byte[]b)throwsIOException向輸入流里寫入一個位元組數組b。

在Java中,文件上傳時怎樣判斷並限制附件大小?

1、在後台action中判斷,把上傳的文件流用位元組讀出來,判斷這個文件的位元組流大小。

2、實現方法參考:上傳文件io傳輸時必然有循環,在循環中設置監聽變數,每次循環前都判斷下該變數是否為true,若不是return/結束程序。當提交取消功能時設置監聽變數為false,其間可能會設計到多線程問題,要好好考慮。

3、創建緩沖區BufferedReader,設置緩存大小為1M,讀滿了後就寫到文件夾,然後判斷數據寫完沒有,沒寫完創建新的文件路徑,循環寫入。

Ⅱ java上傳FTP為什麼總是返回false

java上傳FTP為什麼總是返回false
: ftpClient.setControlEncoding("GBK"); 這個改成下面試試 ftpClient.setControlEncoding("UTF-8");

Ⅲ 公司要求做一個java和jsp怎麼實現ftp上傳的功能模塊,我沒有做過,誰有講得細一點的文章或網站。

form表單提交文件,建議用smartupload上傳,暫存在web伺服器目錄下,然後稍微一下下面的代碼,ftp上傳後,刪除暫存文件,ok
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.StringTokenizer;

import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
import org.apache.log4j.Logger;

/**
* Ftp 服務類,對Apache的commons.net.ftp進行了包裝<br>
* 依賴庫文件:commons-net-1.4.1.jar
*
* @version 1.0 2008-02-18
* @author huchao@jbsoft
*/
public class FtpService {

public FtpService(String serverAddr, String lsenport, String userName,
String pswd) {
this.ftpServerAddress = serverAddr;
this.port = Integer.parseInt(lsenport);
this.user = userName;
this.password = pswd;
}

/**
* FTP 伺服器地址
*/
private String ftpServerAddress = null;
/**
* FTP 服務埠
*/
private int port = 21;
/**
* FTP 用戶名
*/
private String user = null;
/**
* FTP 密碼
*/
private String password = null;
/**
* FTP 數據傳輸超時時間
*/
private int timeout = 0;
/**
* 異常:登錄失敗
*/
private final I2HFException EXCEPTION_LOGIN = new I2HFException("COR101",
"FTP伺服器登錄失敗");
/**
* 異常:文件傳輸失敗
*/
private final I2HFException EXCEPTION_FILE_TRANSFER = new I2HFException(
"COR010", "FTP文件傳輸失敗");
/**
* 異常:IO異常
*/
private final I2HFException EXCEPTION_GENERAL = new I2HFException("COR010",
"FTP IO 異常");
private static final Logger logger = Logger.getLogger(FtpService.class);

/**
* 初始化FTP連接,並進行用戶登錄
*
* @return FTPClient
* @throws I2HFException
*/
public FTPClient initConnection() throws I2HFException {
FTPClient ftp = new FTPClient();
try {
// 連接到FTP
ftp.connect(ftpServerAddress, port);
int reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
throw new I2HFException("COR010", "FTP伺服器連接失敗");
}
// 登錄
if (!ftp.login(user, password)) {
throw EXCEPTION_LOGIN;
}
// 傳輸模式使用passive
ftp.enterLocalPassiveMode();
// 設置數據傳輸超時時間
ftp.setDataTimeout(timeout);
logger.info("FTP伺服器[" + ftpServerAddress + " : " + port + "]登錄成功");
} catch (I2HFException te) {
logger.info(te.errorMessage, te);
throw te;
} catch (IOException ioe) {
logger.info(ioe.getMessage(), ioe);
throw EXCEPTION_LOGIN;
}
return ftp;
}

/**
* 設置傳輸方式
*
* @param ftp
* @param binaryFile
* true:二進制/false:ASCII
* @throws I2HFException
*/
public void setTransferMode(FTPClient ftp, boolean binaryFile)
throws I2HFException {
try {
if (binaryFile) {
ftp.setFileType(FTP.BINARY_FILE_TYPE);
logger.info("FTP文件傳輸方式為:二進制");
} else {
ftp.setFileType(FTP.ASCII_FILE_TYPE);
logger.info("FTP文件傳輸方式為:ASCII");
}
} catch (IOException ex) {
logger.info(ex.getMessage(), ex);
throw EXCEPTION_GENERAL;
}
}

/**
* 在當前工作目錄下建立多級目錄結構
*
* @param ftp
* @param dir
* @throws I2HFException
*/
public void makeMultiDirectory(FTPClient ftp, String dir)
throws I2HFException {
try {
StringBuffer fullDirectory = new StringBuffer();
StringTokenizer toke = new StringTokenizer(dir, "/");
while (toke.hasMoreElements()) {
String currentDirectory = (String) toke.nextElement();
fullDirectory.append(currentDirectory);
ftp.makeDirectory(fullDirectory.toString());
if (toke.hasMoreElements()) {
fullDirectory.append('/');
}
}
} catch (IOException ex) {
logger.info(ex.getMessage(), ex);
throw EXCEPTION_GENERAL;
}
}

/**
* 更改伺服器當前路徑
*
* @param ftp
* @param dir
* @throws I2HFException
*/
public void changeWorkingDirectory(FTPClient ftp, String dir)
throws I2HFException {
try {
if (!ftp.changeWorkingDirectory(dir)) {
throw new I2HFException("COR010", "目錄[ " + dir + "]進入失敗");
}
} catch (I2HFException tfe) {
logger.info(tfe.errorMessage, tfe);
throw tfe;
} catch (IOException ioe) {
logger.info(ioe.getMessage(), ioe);
throw EXCEPTION_GENERAL;
}
}

/**
* 上傳文件到FTP伺服器
*
* @param ftp
* @param localFilePathName
* @param remoteFilePathName
* @throws I2HFException
*/
public void uploadFile(FTPClient ftp, String localFilePathName,
String remoteFilePathName) throws I2HFException {
InputStream input = null;
try {
input = new FileInputStream(localFilePathName);
boolean result = ftp.storeFile(remoteFilePathName, input);
if (!result) {
// 文件上傳失敗
throw EXCEPTION_FILE_TRANSFER;
}
logger.info("文件成功上傳到FTP伺服器");
} catch (I2HFException tfe) {
logger.info(tfe.getMessage(), tfe);
throw tfe;
} catch (IOException ioe) {
logger.info(ioe.getMessage(), ioe);
throw EXCEPTION_FILE_TRANSFER;
} finally {
try {
if (input != null) {
input.close();
}
} catch (IOException ex) {
logger.info("FTP對象關閉異常", ex);
}
}
}

/**
* 下載文件到本地
*
* @param ftp
* @param remoteFilePathName
* @param localFilePathName
* @throws I2HFException
*/
public void downloadFile(FTPClient ftp, String remoteFilePathName,
String localFilePathName) throws I2HFException {
boolean downloadResult = false;
OutputStream output = null;
try {
output = new FileOutputStream(localFilePathName);
downloadResult = ftp.retrieveFile(remoteFilePathName, output);
if (!downloadResult) {
// 如果是文件不存在將異常拋出
throw new I2HFException("COR011", "文件不存在");
}
logger.info("文件成功從FTP伺服器下載");
} catch (I2HFException tfe) {
logger.error(tfe.getMessage(), tfe);
throw tfe;
} catch (IOException ex) {
logger.error(ex.getMessage(), ex);
throw EXCEPTION_FILE_TRANSFER;
} finally {
try {
if (output != null) {
output.close();
}
if (!downloadResult) {
new File(localFilePathName).delete();
}
} catch (IOException ex) {
logger.error("FTP對象關閉異常", ex);
}
}
}

/**
* Method setFtpServerAddress.
*
* @param ftpServerAddress
* String
*/
public void setFtpServerAddress(String ftpServerAddress) {
this.ftpServerAddress = ftpServerAddress;
}

/**
* Method setUser.
*
* @param user
* String
*/
public void setUser(String user) {
this.user = user;
}

/**
* Method setPassword.
*
* @param password
* String
*/
public void setPassword(String password) {
this.password = password;
}

/**
* Method setTimeout.
*
* @param timeout
* String
*/
public void setTimeout(String timeout) {
try {
this.timeout = Integer.parseInt(timeout);
} catch (NumberFormatException ex) {
// 默認超時時間500毫秒
this.timeout = 500;
}
}

/**
* Method setPort.
*
* @param port
* String
*/
public void setPort(String port) {
try {
this.port = Integer.parseInt(port);
} catch (NumberFormatException ex) {
// 默認埠21
this.port = 21;
}
}
}
=====================================
jsp上傳部分
===================================
<form method="post" name="uploadform" id="uploadform" action="upload" ENCTYPE="multipart/form-data">

<input type="hidden" name="service" value="com.jbsoft.i2hf.corpor.services.CstBatchBizServices.exclUpload"/>
<table cellspacing="0" cellpadding="0">
<tr>
<td width="20%" align="right">上傳本地文件:</td>
<td width="80%"><input class="" style="width:300px" type="file" width="300px" name="exclname" id="exclname"/></td>
</tr>
</table>
</form>
============================================
上傳的servlet用的是smartupload
,部分代碼可以參考一下:
==========================================
SmartUpload su = new SmartUpload();
su.setCharset("UTF-8");
su.initialize(getServletConfig(), request, response);
su.setMaxFileSize(10240000);
su.setTotalMaxFileSize(102400000);
su.setAllowedFilesList("xls");
su.upload();
===========================================
代碼裡面有一些客戶的信息,不能全部給你哈

Ⅳ java ftp上傳時斷網,文件損壞

以二進制流上傳,然後實現斷點續傳。

/**
* 上傳文件到FTP伺服器,支持斷點續傳
* @param local 本地文件名稱,絕對路徑
* @param remote 遠程文件路徑,使用/home/directory1/subdirectory/file.ext 按照linux上的路徑指定方式,支持多級目錄嵌套,支持遞歸創建不存在的目錄結構
* @return 上傳結果
* @throws IOException
*/
public UploadStatus upload(String local,String remote) throws IOException{
FTPClient ftpClient = new FTPClient();
//設置PassiveMode傳輸
ftpClient.enterLocalPassiveMode();
//設置以二進制流的方式傳輸
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
UploadStatus result;
//對遠程目錄的處理
String remoteFileName = remote;
if(remote.contains("/")){
remoteFileName = remote.substring(remote.lastIndexOf("/")+1);
String directory = remote.substring(0,remote.lastIndexOf("/")+1);
if(!directory.equalsIgnoreCase("/")&&!ftpClient.changeWorkingDirectory(directory)){
//如果遠程目錄不存在,則遞歸創建遠程伺服器目錄
int start=0;
int end = 0;
if(directory.startsWith("/")){
start = 1;
}else{
start = 0;
}
end = directory.indexOf("/",start);
while(true){
String subDirectory = remote.substring(start,end);
if(!ftpClient.changeWorkingDirectory(subDirectory)){
if(ftpClient.makeDirectory(subDirectory)){
ftpClient.changeWorkingDirectory(subDirectory);
}else {
System.out.println("創建目錄失敗");
return UploadStatus.Create_Directory_Fail;
}
}

start = end + 1;
end = directory.indexOf("/",start);

//檢查所有目錄是否創建完畢
if(end <= start){
break;
}
}
}
}

//檢查遠程是否存在文件
FTPFile[] files = ftpClient.listFiles(remoteFileName);
if(files.length == 1){
long remoteSize = files[0].getSize();
File f = new File(local);
long localSize = f.length();
if(remoteSize==localSize){
return UploadStatus.File_Exits;
}else if(remoteSize > localSize){
return UploadStatus.Remote_Bigger_Local;
}

//嘗試移動文件內讀取指針,實現斷點續傳
InputStream is = new FileInputStream(f);
if(is.skip(remoteSize)==remoteSize){
ftpClient.setRestartOffset(remoteSize);
if(ftpClient.storeFile(remote, is)){
return UploadStatus.Upload_From_Break_Success;
}
}

//如果斷點續傳沒有成功,則刪除伺服器上文件,重新上傳
if(!ftpClient.deleteFile(remoteFileName)){
return UploadStatus.Delete_Remote_Faild;
}
is = new FileInputStream(f);
if(ftpClient.storeFile(remote, is)){
result = UploadStatus.Upload_New_File_Success;
}else{
result = UploadStatus.Upload_New_File_Failed;
}
is.close();
}else {
InputStream is = new FileInputStream(local);
if(ftpClient.storeFile(remoteFileName, is)){
result = UploadStatus.Upload_New_File_Success;
}else{
result = UploadStatus.Upload_New_File_Failed;
}
is.close();
}
return result;
}

Ⅳ java程序在linux系統下運行上傳文件到ftp伺服器出錯代碼 「451 參數錯誤」

請檢查磁碟空間
451 上傳不能繼續,使用的硬碟空間已經達到用戶的硬碟配額上限

熱點內容
安卓修改音頻采樣率怎麼修改 發布:2024-11-30 20:24:12 瀏覽:281
2核伺服器能搭建幾個ip 發布:2024-11-30 20:19:30 瀏覽:55
iphone有緩存嗎 發布:2024-11-30 20:18:16 瀏覽:194
oracleexp腳本 發布:2024-11-30 20:09:00 瀏覽:497
jsf上傳文件 發布:2024-11-30 20:08:48 瀏覽:600
linuxwindows編程 發布:2024-11-30 20:08:33 瀏覽:527
電腦配置選擇什麼版本 發布:2024-11-30 20:08:27 瀏覽:728
cfhd官網要什麼配置 發布:2024-11-30 19:45:47 瀏覽:949
vbs腳本文件 發布:2024-11-30 19:37:54 瀏覽:830
電腦視頻太多可以放到伺服器上嗎 發布:2024-11-30 19:13:25 瀏覽:361