因工作需要,在後台管理頁面加入乙個上傳檔案的模組,雖然介面的**很簡單,但實現期間遇到了一些比較有趣的坑,特記錄下來。
檔案上傳**暫且不談,先說說檔案放在伺服器什麼位置比較合適。我首先想到的是兩個地方:
nginx的靜態目錄下,放在這個目錄下則不會有什麼影響。只需要在nginx中進行相應的配置即可。可用也可行。
由於我們使用的是ssm框架,首先需要配置檔案上傳解析器。
雖然簡單,但依舊遵從三層架構,controller實現如下:
@controller
public class uploadapkcontroller catch (ioexception e)
return resultmap;
}}
service介面:
public inte***ce uploadapkservice
service實現類:
public class uploadapkserviceimpl implements uploadapkservice
}
**部分完成。
ls -all apk
顯示如下:
發現zrx.apk許可權為640,對於其他人並沒有讀的許可權。我nginx的配置如下:
所以通過nginx並沒有讀取這個檔案的許可權。有些人可能會說將nginx的user調整為root,但我建議不要給nginx太大的許可權。所以採用另一種方式解決這個問題。
既然不決定提高nginx的許可權,那麼只能將上傳檔案的許可權由640改為644。檢視tomcat的bin目錄下的catalina.s**件:
將這裡的0027改為0022即可,0022代表許可權為644。
許可權修改完成,再次進行測試,呼叫介面上傳檔案,檢查檔案許可權:
Java檔案上傳實現
1 準備好前台頁面upload.html 表單 action 上傳檔案後台介面 method post enctype multipart form data 檔案輸入框 2 加入相應的jar包 3 準備接收檔案servlet url路徑一定要與上面表單的action保持一致 4 編寫檔案上傳後台 ...
JAVA檔案上傳的實現類
檔案上傳的實現類,將源檔名去掉後用時間作為名字存放 param len request的長度 param contenttype request的內容 param in request流 return byte 上傳檔案的位元組陣列 public byte uploadtobyte int len,...
java中如何實現檔案上傳
檔案上傳一般要用到第三方的上傳元件 1 commons fileupload 非常主流 2 smartupload 編碼處理不是很好 commons fileupload 上傳步驟 例如 對乙個註冊使用者實現上傳頭像 使用者類有 private string name private string ...