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

ftpstorefile

發布時間: 2023-09-29 16:29:07

1. 採用ftpclient.storeFile(String, Inputstream)將流寫到伺服器,沒報錯但伺服器上沒有文件,這是怎麼回事

//創建一個FtpClient對象

FTPClient ftpClient = new FTPClient();
//上傳文件 - 讀取本地文件 file:需要上傳的文件地址
FileInputStream inputStream = new FileInputStream(file);
//將流寫到伺服器
ftpclient.storeFile(String, inputStream)
其中String為保存後的文件名,inputStream就是上面獲取的文件流

向上面說的伺服器上沒有文件,
1、可能是你String前面加了地址,但是你的ftp伺服器中沒有這個文件夾導致的,
2、在以有的文件夾下上傳保存,在String前面加/文件夾名,
例:ftpClient.storeFile("/***"+String, inputStream);

(多層文件夾時)有的時候你需要給ftp文件夾設置許可權(右擊文件夾選擇屬性--安全--編輯--永許完全控制),可以試一試。最好只用當前層文件夾,否則每層都要設置
3、
ftpClient.makeDirectory("/文件名");//創建文件夾
ftpClient.changeWorkingDirectory("/文件名");改變保存路徑
這種的最好只用一層文件夾路徑
本人彩筆一枚,大佬請噴。噴完了請把解決思路說一下!!!

2. ftp上傳文件的時候老是連接超時。

出現此問題的原因:傳輸模式錯誤。

解決的方法和操作步驟如下:

准備工具:FlashFXP5。

1、首先,在桌面上找到「
FlashFXP5」,然後雙擊以打開FTP軟體,如下圖所示,然後進入下一步。

3. FtpClient.storeFile作用

作用是將流寫進伺服器

FTP就是文件傳輸協議。用於互聯網雙向傳輸,控制文件下載空間在伺服器復制文件從本地計算機或本地上傳文件復制到伺服器上的空間。

4. java下利用ftpClient.storeFile上傳文件後不能返回

: ftpClient.setControlEncoding("GBK"); 這個改成下面試試 ftpClient.setControlEncoding("UTF-8");

5. 大哥 ,採用ftpclient.storeFile(String, Inputstream)將流寫到伺服器,沒報錯但伺服器上沒有文件,這個問

FTP協議有兩種工作方式:PORT方式和PASV方式,中文意思為主動式和被動式。 PORT(主動)方式的連接過程是:客戶端向伺服器的FTP埠(默認是21)發送連接請 求,伺服器接受連接,建立一條命令鏈路。當需要傳送數據時,客戶端在命令鏈路上用PORT 命令告訴伺服器:「我打開了XXXX埠,你過來連接我」。於是伺服器從20埠向客戶端的 XXXX埠發送連接請求,建立一條數據鏈路來傳送數據。 PASV(被動)方式的連接過程是:客戶端向伺服器的FTP埠(默認是21)發送連接請 求,伺服器接受連接,建立一條命令鏈路。當需要傳送數據時,伺服器在命令鏈路上用PASV 命令告訴客戶端:「我打開了XXXX埠,你過來連接我」。於是客戶端向伺服器的XXXX埠 發送連接請求,建立一條數據鏈路來傳送數據。

我當時因為連的是別人的伺服器,那邊換了伺服器就出現這問題,後來我通過FTPClient有一個ftpclient.enterLocalPassiveMode()方法,設置後就沒有這問題了,不知道你是不是跟我一樣

6. 為什麼ftp用FileZilla可以正常上傳圖片,使用java代碼走到client.storefile();就

既然你可以用filezilla連接並實現上傳, 說明伺服器是沒有問題的, 那麼就要檢查一下你的windows是否有問題了. 首先看一下windows的防火牆是不是開了, 如果打開了, 關閉一下, 再嘗試一下上傳功能, 看能夠成功. 如果不行, 看一下你的ftpclient相關的jar包版本和jdk版本是否匹配, 這里也可能出問題.
希望能夠幫到你.

7. JAVA 如何實現FTP遠程路徑

package nc.ui.doc.doc_007;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import nc.itf.doc.DocDelegator;
import nc.vo.doc.doc_007.DirVO;
import nc.vo.pub.BusinessException;
import nc.vo.pub.SuperVO;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
import org.apache.commons.net.ftp.FTP;

public class FtpTool {

private FTPClient ftp;

private String romateDir = "";

private String userName = "";

private String password = "";

private String host = "";

private String port = "21";

public FtpTool(String url) throws IOException {
//String url="ftp://user:password@ip:port/ftptest/psd";
int len = url.indexOf("//");
String strTemp = url.substring(len + 2);
len = strTemp.indexOf(":");
userName = strTemp.substring(0, len);
strTemp = strTemp.substring(len + 1);

len = strTemp.indexOf("@");
password = strTemp.substring(0, len);
strTemp = strTemp.substring(len + 1);
host = "";
len = strTemp.indexOf(":");
if (len < 0)//沒有設置埠
{
port = "21";
len = strTemp.indexOf("/");
if (len > -1) {
host = strTemp.substring(0, len);
strTemp = strTemp.substring(len + 1);
} else {
strTemp = "";
}
} else {
host = strTemp.substring(0, len);
strTemp = strTemp.substring(len + 1);
len = strTemp.indexOf("/");
if (len > -1) {
port = strTemp.substring(0, len);
strTemp = strTemp.substring(len + 1);
} else {
port = "21";
strTemp = "";
}
}
romateDir = strTemp;
ftp = new FTPClient();
ftp.connect(host, FormatStringToInt(port));

}

public FtpTool(String host, int port) throws IOException {
ftp = new FTPClient();
ftp.connect(host, port);
}

public String login(String username, String password) throws IOException {
this.ftp.login(username, password);
return this.ftp.getReplyString();
}

public String login() throws IOException {
this.ftp.login(userName, password);
System.out.println("ftp用戶: " + userName);
System.out.println("ftp密碼: " + password);
if (!romateDir.equals(""))
System.out.println("cd " + romateDir);
ftp.changeWorkingDirectory(romateDir);
return this.ftp.getReplyString();
}

public boolean upload(String pathname, String filename) throws IOException, BusinessException {

int reply;
int j;
String m_sfilename = null;
filename = CheckNullString(filename);
if (filename.equals(""))
return false;
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
System.out.println("FTP server refused connection.");
System.exit(1);
}
FileInputStream is = null;
try {
File file_in;
if (pathname.endsWith(File.separator)) {
file_in = new File(pathname + filename);
} else {
file_in = new File(pathname + File.separator + filename);
}
if (file_in.length() == 0) {
System.out.println("上傳文件為空!");
return false;
}
//產生隨機數最大到99
j = (int)(Math.random()*100);
m_sfilename = String.valueOf(j) + ".pdf"; // 生成的文件名
is = new FileInputStream(file_in);
ftp.setFileType(FTP.BINARY_FILE_TYPE);
ftp.storeFile(m_sfilename, is);
ftp.logout();

} finally {
if (is != null) {
is.close();
}
}
System.out.println("上傳文件成功!");
return true;
}

public boolean delete(String filename) throws IOException {

FileInputStream is = null;
boolean retValue = false;
try {
retValue = ftp.deleteFile(filename);
ftp.logout();
} finally {
if (is != null) {
is.close();
}
}
return retValue;

}

public void close() {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}

public static int FormatStringToInt(String p_String) {
int intRe = 0;
if (p_String != null) {
if (!p_String.trim().equals("")) {
try {
intRe = Integer.parseInt(p_String);
} catch (Exception ex) {

}
}
}
return intRe;
}

public static String CheckNullString(String p_String) {
if (p_String == null)
return "";
else
return p_String;
}

public boolean downfile(String pathname, String filename) {

String outputFileName = null;
boolean retValue = false;
try {
FTPFile files[] = ftp.listFiles();
int reply = ftp.getReplyCode();

////////////////////////////////////////////////
if (!FTPReply.isPositiveCompletion(reply)) {
try {
throw new Exception("Unable to get list of files to dowload.");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

/////////////////////////////////////////////////////
if (files.length == 0) {
System.out.println("No files are available for download.");
}else {
for (int i=0; i <files.length; i++) {
System.out.println("Downloading file "+files[i].getName()+"Size:"+files[i].getSize());
outputFileName = pathname + filename + ".pdf";
//return outputFileName;
File f = new File(outputFileName);

//////////////////////////////////////////////////////
retValue = ftp.retrieveFile(outputFileName, new FileOutputStream(f));

if (!retValue) {
try {
throw new Exception ("Downloading of remote file"+files[i].getName()+" failed. ftp.retrieveFile() returned false.");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}
}

/////////////////////////////////////////////////////////////
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return retValue;
}

}

8. ftp上傳文件,storeFile()為何總返回false

環境:伺服器和客戶端都是本機的
public void upload(String sourcePath, String targetPath) {try {FTPClient client = getFTPClient(Constants.ftpIP, 21, Constants.ftpUser, Constants.ftpPwd);
client.enterLocalPassiveMode();
InputStream inputStream = null;
File file = new File(sourcePath);
File [] files = file.listFiles();
for(File f : files) {
String fileName = f.getName();
inputStream = new FileInputStream(sourcePath+fileName);
boolean flag = client.storeFile(targetPath+fileName, inputStream);
System.out.println(flag);//為何此處的值是false}logger.info(上傳完畢);
client.disconnect();
} catch (Exception e) {
logger.warn(向伺服器上上傳文件失敗, e);}}//測試代碼:
fod.upload(f:/b/, f:/a/);//這個結果是false

9. java 實現ftp上傳的問題

我以前碰到過,不知道是不是和你的一樣的問題:

我的是英文名稱的文件可以上傳,中文名不行(也不報錯,運行正確,就是FTP文件伺服器上沒文件), 後來我發現是編碼問題,我把我的項目代碼貼上來:

package omsejb..upload;

import java.io.*;

import java.util.ArrayList;
import java.util.List;
import omsejb.system.OMSJDBCBase;
import tellhow.exception.sysexception.JDBCDAOSysException;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;

import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.ServiceException;
import java.net.MalformedURLException;
import java.rmi.RemoteException;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;

/**
* 上報文件(上傳文件,如:地調上報省調數據,採用E語言文件形式上報)
* @author ZouLiXing
*
*/
public class UpLoadFile extends OMSJDBCBase
{
private String ftpHost = "";
private int ftpPort;
private String ftpUserName = "";
private String ftpPassword = "";
private String webServicePoint = "";
private String webServiceName = "";
private String ftpPath="";
private String localPath="";

public UpLoadFile(){

UploadDaoEntity ude = new UploadDaoEntity();
ftpHost = ude.getDicValue("ftphost");
ftpPort = Integer.parseInt(ude.getDicValue("ftpport"));
ftpUserName = ude.getDicValue("ftpusername");
ftpPassword = ude.getDicValue("ftppassword");
webServicePoint = ude.getDicValue("webservicepoint");
webServiceName = ude.getDicValue("webservicename");
ftpPath = ude.getDicValue("ftppath");
localPath = ude.getDicValue("filepath");
}
/**
* true表示FTP上傳文件成功;否則失敗。
*
* @param hostName
* FTP地址
* @param port
* 埠 默認21
* @param userName
* @param password
* @param path
* @param servicefileName
* 上傳名
* @param input
* 本地文件輸入流
* @return
*/
public boolean ftpUpLoadEFile(String filename) {
FTPClient ftpClient = new FTPClient();
int reply;
try {
ftpClient.connect(ftpHost, ftpPort);
boolean l=ftpClient.login(ftpUserName, ftpPassword);
if(l){
System.out.println("login success(成功登陸FTP)!");
}else{
System.out.println("login success(登陸FTP不成功)!");
return false;
}
reply = ftpClient.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftpClient.disconnect();
return false;
}
File file = new File(localPath+filename);
InputStream input = new FileInputStream(file);
boolean b = ftpClient.storeFile(GBKToiso8859(filename), input);
input.close();
ftpClient.logout();
if(!b){
System.out.println("上傳文件不成功!");
return false;
}else{
System.out.println("上傳文件成功-_-!");
}
} catch (IOException ioe) {
ioe.printStackTrace();
return false;
} finally {
if (ftpClient.isConnected()) {
try {
ftpClient.disconnect();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
return true;
}
/**
* 轉碼[GBK -> iso-8859-1] 不同的平台需要不同的轉碼
*
* @param obj
* @return
*/
private String GBKToiso8859(Object obj) {
try {
if (obj == null)
return "";
else
return new String(obj.toString().getBytes("GBK"), "iso-8859-1");
} catch (Exception e) {
return "";
}
}

public static void main(String[] agrs){
// UpLoadFile uf = new UpLoadFile();
//
// String ftpHost = "10.61.12.233";
// int ftpPort = 21;
// String userName = "omshz";
// String password = "omshz11";
// String ftpPath = "";
////
//// String fileName = "";
//// String filePath = "";
//// String selectID="";//選擇上傳的文件ID,多個文件用","隔開;
//// List lsFilePath = uf.getFilePath(selectID);
//// for(int i=0;i<lsFilePath.size();i++){
// //上傳E文件
//// filePath = lsFilePath.get(i).toString();
//// fileName = uf.getFileName(filePath);
// File file = new File("d:\\日購網電量上報_西安局_2006-03-06.YB");
// try {
// InputStream input = new FileInputStream(file);
// uf.ftpUpLoadEFile(ftpHost, ftpPort, userName, password, ftpPath,
// "日購網電量上報_西安局_2006-03-06.YB", input);
// } catch (FileNotFoundException fileNoe) {
// fileNoe.printStackTrace();
// }
//
}
}

熱點內容
什麼是手機存儲模式 發布:2025-01-23 22:41:57 瀏覽:534
c語言相反數 發布:2025-01-23 22:28:55 瀏覽:187
壓縮網課 發布:2025-01-23 22:13:19 瀏覽:597
網站收錄源碼 發布:2025-01-23 22:04:42 瀏覽:693
用c語言製作 發布:2025-01-23 21:49:09 瀏覽:951
怎麼刪除開機密碼電腦 發布:2025-01-23 21:47:24 瀏覽:891
php配置偽靜態 發布:2025-01-23 21:31:46 瀏覽:764
mud源碼下載 發布:2025-01-23 21:19:46 瀏覽:137
反恐精英15游戲伺服器ip 發布:2025-01-23 21:13:38 瀏覽:853
起床的戰爭玩什麼伺服器 發布:2025-01-23 21:03:06 瀏覽:145