初次接觸FTPclient

2021-06-28 21:00:31 字數 1258 閱讀 8577

參與了乙個基於spring mvc框架的**開發,其他帶過,其中有個模組涉及到檔案的上傳功能,使用了js 的uploadfiy外掛程式,上傳時還會有百分比的進度條,後台使用fileoutputstream的write方法,

在此碰到了個問題,上傳檔案大小總有限制,最開始僅能上傳100m以下的檔案。

網上搜尋出很多建議:改spring的配置檔案

999999999999

改uploadfiy的引數

sizelimit (上傳檔案的大小限制)。

這兩個都更改了後,效果還是不大,有時候是上傳的進度條到百分之幾時就會中斷,然後報io error錯誤,有時候是進度條跑完後,後台程式報異常。

還有建議是改**伺服器的配置,改tomcat配置。(不知道有用沒)

感覺上傳的controller應該要換一種方式試試,於是看到了ftpclient,貌似這個上傳檔案比http協議穩定,而且還支援斷點續傳(不會用),都不知怎麼開始用,感覺莫名其妙,於是各種找demo,終於找到乙個能用的:

ftpclient ftpclient = new ftpclient(); 

fileinputstream fis = null;

try catch (ioexception e) finally catch (ioexception e)

}

(****於網路)

當ftpclient.storefile 方法返回ture時,就說明上傳成功了,此時注意要新增jar包,我用的是commons-net-3.3.jar,專案匯入此包後,還要將這個包複製乙份到tomcat的lib目錄下,否則會找不到這個類,做完這個後,卻還是返回了false,又在網上看到

呼叫ftpclient.enterlocalpassivemode();這個方法的意思就是每次資料連線之前,ftp client告訴ftp server開通乙個埠來傳輸資料。為什麼要這樣做呢,因為ftp server可能每次開啟不同的埠來傳輸資料,但是在linux上,由於安全限制,可能某些埠沒有開啟,所以就出現阻塞。

於是我加入了這個方法,果然就ok了,改動之後,上傳的檔案大小能到四五百兆。

總結:方法是找到了,但是還是知其然不知其所以然,慚愧啊,都不知道原因到底在哪,唉,再乙個就是,如果上傳再大些的檔案,uploadfiy的進度條到不了5%就斷掉了,然後還是報io error,覺得還是這個js外掛程式沒弄好。第一次寫哈,請多包涵嘿嘿,記錄下這個過程以便複習,這其中還有好多沒弄明白的緣由,希望大神們多多賜教。

初次接觸perl

今天貝在煩乙個程式,也為難他了,剛學perl不到兩天,就讓他寫程式完成功能,雖然現在他有很大的提高,但是也還是心裡沒底啊。第一次布置的任務,他說如果不完成還是挺不好的,呵呵,沒辦法,我就樂於助人,趕緊看了看perl的大概語法,變數迴圈等,然後找了相關的網頁看了看,還好,因為比較熟悉c語言,而且上過s...

初次接觸powershell

在linux下接觸shell後,發現shell的功能是如此的強大!window呢?同樣,學習了 nix的做法,實現了shell,稱為powershell,在我看來,這個名字取得不過份,它通過。net與shell的結合,提供了強大的平台操作功能,提供了與 nix的相同的命令的語法,令 nix的程式設計...

初次接觸VBS

隨便找了段vbs程式,分析語句on error resume next 使程式按照產生錯誤的語句之後的語句繼續執行,具體見 dim sourcepath dim numb dim應該是定義變數吧,猜得set初始化變數 sub filew 寫檔案 dim fso,myfile set fso crea...