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

ftpstor

發布時間: 2022-02-15 19:06:21

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

⑵ 採用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("/文件名");改變保存路徑
這種的最好只用一層文件夾路徑
本人彩筆一枚,大佬請噴。噴完了請把解決思路說一下!!!

⑶ FTP能下載文件 不能上傳文件

不知你用的是什麼FTP伺服器,從出錯信息來看,應該是IP綁定的問題,你的FTP服務沒有允許你的IP訪問它的服務,這個肯定是你的FTP設置的問題
若是簡單的使用FTP服務,個人的建議是用Filezilla
FTP
Server,簡單方便

⑷ 有大神知道怎麼使用python 往ftp伺服器上連續上傳下載多張圖片嗎

例:下載、上傳文件

#coding:utf-8
fromftplibimportFTP
importtime
importtarfile
importos
#!/usr/bin/python
#-*-coding:utf-8-*-

fromftplibimportFTP

defftpconnect(host,username,password):
ftp=FTP()
#ftp.set_debuglevel(2)
ftp.connect(host,21)
ftp.login(username,password)
returnftp

#從ftp下載文件
defdownloadfile(ftp,remotepath,localpath):
bufsize=1024
fp=open(localpath,'wb')
ftp.retrbinary('RETR'+remotepath,fp.write,bufsize)
ftp.set_debuglevel(0)
fp.close()

#從本地上傳文件到ftp
defuploadfile(ftp,remotepath,localpath):
bufsize=1024
fp=open(localpath,'rb')
ftp.storbinary('STOR'+remotepath,fp,bufsize)
ftp.set_debuglevel(0)
fp.close()

if__name__=="__main__":
ftp=ftpconnect("113.105.139.xxx","ftp***","Guest***")
downloadfile(ftp,"Faint.mp4","C:/Users/Administrator/Desktop/test.mp4")
#調用本地播放器播放下載的視頻
os.system('start"C:.exe""C:/Users/Administrator/Desktop/test.mp4"')
uploadfile(ftp,"C:/Users/Administrator/Desktop/test.mp4","test.mp4")

ftp.quit()

⑸ FTP文件總是上傳失敗,怎麼回事

"Access denied " 就是不允許打開讀寫root.txt
把對應文件夾和文件應當設置為允許任何人(即伺服器)都可以讀寫.

⑹ FTP無法連接

注意這段話:
227 Entering Passive Mode (60,165,133,154,13,31)
ERROR: [Data]: Connection refused

PASV模式,PORT模式錯誤~!

如果你用的是ftp客戶端軟體請把被動模式選擇上就可以了。

補充:返回值:227 Entering Passive Mode (60,165,133,154,13,31)說明
每一個ftp發送之後,ftp伺服器都會返回一個字元串,其中包括一個返回代碼和一串說明信息。這個返回碼主要是用於判斷命令是否被成功執行了。除此之外,還有一個非常重要的命令的返回。當發送pasv之後,返回「227 entering passive mode (60,165,133,154,13,31)」。這意味著在伺服器上有一個埠被開放,他將為我們後面接著的數據傳輸作好准備,但是我們如何知道該埠號呢,就在(60,165,133,154,13,31)中,前面四位指伺服器的地址,關鍵是最後兩位,將最後第二位乘256再加上最後一位的值就是我們的埠號,也就是13*256+31。取得埠號之後我們就可以用socket連接到這里。這為我們後面的工作作好准備了,因為我們的取得列表,上傳,下載文件都要依靠它來實現。常用的返回如下:

125 data connection already open; transfer starting.

226 transfer complete.

227 entering passive mode (60,165,133,154,13,31).

230 user xxxxx logged in.

331 password required for xxxxx.

425 can』t open data connection.

226 closing data connection.

ftp客戶端編程結構:

前面已提到了ftp命令及其響應信息。其實我們做ftp客戶端工具只不過是用一個winsocket連接上ftp伺服器,然後象其發送命令。在這個過程中,我們依靠發送——響應的機制。即發送ftp命令——接收返回的響應信息——分析該信息——執行相關操作——發送下一條命令。在一般意義上,有一個socket用來連接ftp伺服器的相關埠(如默認的21),它負責ftp命令的發送和接收返回的響應信息。一些操作如「進入目錄」,「刪除文件」,依靠這個socket發送一條命令就可完成了。然而對於有數據傳輸的操作,主要是顯示遠端目錄列表,上傳、下載文件,我們不得不依靠另一個socket來完成。在進行這種操作之前,必須發送pasv命令,它返回了227開頭的信息,在括弧中有以逗號隔開的六個數字,前四個指伺服器的地址,關鍵是最後兩個,將倒數第二個乘256再加上最後一個數字,其結果就是ftp伺服器開放的用於下一條命令來進行數據傳輸的埠。如我們得到227 entering passive mode (60,165,133,154,13,31),那麼埠號是13*256+31=3359。我們用一個socket來連接這個埠,之後,我們可根據具體的操作(顯示目錄list,上傳文件stor,下載retr)來發送命令。返回的響應代碼為125開頭,也就是連接打開了,可以開始傳輸數據,這時就可用socket的發送或接收方法來傳輸數據。完成之後,伺服器會返回代碼226 transfer complete,表明數據傳輸完成。值得注意的是,我們最好不要一次發送多條命令,例如我們要回到上層目錄並且顯示這個目錄,我們得發送cp,pasv,list,我們不能一下子發送:cp\r\n, pasv\r\n, list\r\n。 而是發送完cp之後等待其響應代碼,然後再發送後面一條。當pasv返回之後,我們打開另一個socket連接到相關埠上。然後發送list,返回125之後在開始接收數據,最後返回226表明完成。對於上傳和下載也是差不多的過程(下載之前要先取得文件的大小)。

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

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

⑻ python 檢測FTP目錄是否為空

ftp相關命令操作
ftp.cwd(pathname) #設置FTP當前操作的路徑
ftp.dir() #顯示目錄下文件信息
ftp.nlst() #獲取目錄下的文件
ftp.mkd(pathname) #新建遠程目錄
ftp.pwd() #返回當前所在位置
ftp.rmd(dirname) #刪除遠程目錄
ftp.delete(filename) #刪除遠程文件
ftp.rename(fromname, toname)#將fromname修改名稱為toname。
ftp.storbinaly("STOR filename.txt",file_handel,bufsize) #上傳目標文件
ftp.retrbinary("RETR filename.txt",file_handel,bufsize)#下載FTP文件

⑼ FTP上傳文件總是上傳失敗

你的FTP
可能
不穩定,不知道你用的是哪個網站的FTP,也可能是你用的FTP網站裝有殺毒軟體
你的珍藏版的東東可能綁有病毒一類的東東,或者綁定讓殺毒軟體敏感的
詞語
,你換換FTP
或者檢查下你珍藏版的東東,是否留有
後門程序

⑽ FTPClient.storeFile報連接超時。但是已經能login,而且建立了文件夾了。再調storeFile時報錯。

我遇到過這個問題,改成在建立連接之前設置被動模式,就可以上傳了。

熱點內容
rar解壓縮破解版 發布:2024-10-26 00:12:43 瀏覽:380
javarestfulapi開發 發布:2024-10-26 00:04:04 瀏覽:443
伺服器設置業務口ip 發布:2024-10-25 23:46:12 瀏覽:69
手機游戲解壓縮怎麼用 發布:2024-10-25 23:45:57 瀏覽:255
存儲過程性能 發布:2024-10-25 23:35:39 瀏覽:111
同一個ip是不是同一個伺服器 發布:2024-10-25 23:33:15 瀏覽:518
為啥c語言要編譯器啊 發布:2024-10-25 23:32:38 瀏覽:218
快存儲 發布:2024-10-25 23:31:05 瀏覽:286
演算法製造 發布:2024-10-25 23:11:27 瀏覽:886
台式電腦安裝哪個安卓系統好 發布:2024-10-25 23:11:25 瀏覽:114