伺服器檔案上傳總結四種方法

2021-09-02 11:24:45 字數 1633 閱讀 3780

方法一:使用servlet實現,這種方法很基本。

實現:通過簡單的配置web.xml檔案,形成乙個web訪問體系,使用了 org.apache.commons.fileupload檔案上傳類,實現httpservlet介面中的三個方法,其中dopost()方法由自己去實現,定義基本引數:如:上傳的格式,大小,檔案上傳路徑,和一些錯誤提示輸出資訊等等。這個方法很好實現,不過缺點是,檔案行數很大,大量的**在乙個類裡面(其實可是試試將實現步驟用乙個個的類/方法去實現,但這也花了一些時間,我很少會那樣去做),整體布局不是很好看,再加上注釋,呵呵,整個程式就像繡花一樣了,我不大喜歡這種。專案部署:在程式裡面定義上傳路徑,一般這種路徑和專案部署的位置在同一臺伺服器上面。檔案也同時上傳到這台伺服器相應的資料夾裡面。

方法二:使用經典的struts2框架來做,使用它自己封裝好的fileupload類

使用這種方法除了要配置web.xml檔案以外,還需要配置struts.xml檔案,這種方法很友好,因為畢竟是框架,所有整體程式有條不紊,後續修改也很好實現。頁面顯示使用的是jsp。這種方法我比較喜歡。專案部署:檔案要上傳到哪台伺服器,專案就要部署到那台伺服器,從這點出發,它就變得不太友好了。如果是向多台伺服器上傳檔案,那就麻煩了,專案就要部署到多台伺服器裡面,同時專案之間有很大的耦合性,很繁瑣,稍有問題,程式就出問題了,檔案就會上傳不到位,或者失敗。這樣是很不好的。但是還請相信的是,如果是一台伺服器需要上傳檔案,那麼這種方法是很不錯的選擇^_^。

方法三:框架一致,同樣是struts2,但上傳不在使用fileupload類,採用ftp工具類

這種方法就不想上面第二種方法那麼笨拙了,這種方法很簡單,需要一些基本的引數:

fu.connectserver(「ip」, port, 「username」, 「password」, 「上傳路徑」);

使用到commons-net-3.3-src.jar包。特點:第一,這種方法需要linux伺服器配置好了ftp伺服器才可以使用這個類,所有在使用的時候,一定要看看伺服器是不是配置了ftp服務。第二,在使用的時候很容易忽略的一點是不知道ftp伺服器使用的是不是通常用的21埠,通常這個埠是可以修改的,例如修改為2121埠等等,我在做檔案遠端上傳的使用,使用了connectserver這種方法,把我折騰了很久,一直連不上,最後發現部分不伺服器的這個埠是沒有開啟的,最後檔案上傳成功了,很慚愧。所有大家在使用的時候就一定要注意了。這種方法我最後沒有使用,為啥,ftp開21埠很不安全,這樣方法就最好不要使用了。方法的優點:能夠上傳檔案到裝有ftp伺服器的任意乙個可以訪問的遠端linux伺服器,相對上面兩種方法,它是不錯的。呵呵

方法四:依舊使用struts2框架,工具類大變身,改用ibm提出,並由微軟重大改進後產出而出的smb。它能被用於warp連線和客戶端與伺服器之間的資訊溝通。伺服器資訊塊(smb)協議是一種ibm協議,用於在計算機間共享檔案、印表機、串列埠等。smb 協議可以用在網際網路的tcp/ip協議之上,也可以用在其它網路協議如ipx和netbeui 之上。

不在介紹了,這些網上有,呵呵。

檔案刪除:new smbnamedpipe(「smb://使用者名稱:密碼@伺服器ip,smbnamedpipe.pipe_type_rdwr).delete();

看檔案是讀取:new smbfile(「smb://使用者名稱:密碼@伺服器ip/檔案的位置);

起初一抹眼,開始新的工作

四種方式搭建檔案伺服器

最近做工程,檔案儲存 儲存沒有乙個統一的管理方式,很不爽。第一 第二種搭建過程 優點 配置快,開發速度最快,用起來不方便。缺點 沒有密碼驗證,資訊洩露,每個人都可以訪問。優點 安全性高 缺點 自己用,新增使用者的方式太麻煩了。該方案不適合用於工程專案 優點 基本上公司都是這麼幹的 缺點 配置更加的複...

PHP遞迴四種方法

data json data str replace data arr json decode data true print r arr dir foreach arr as k v header content type text html charset utf 8 print r arr p...

執行緒同步四種方法

執行緒同步的方法 1 wait 使乙個執行緒處於等待狀態,並且釋放所持有的物件的lock。2 sleep 使乙個正在執行的執行緒處於睡眠狀態,是乙個靜態方法,呼叫此方法要捕捉 interruptedexception異常。3 notify 喚醒乙個處於等待狀態的執行緒,注意的是在呼叫此方法的時候,並...