❶ javaweb項目java後台獲取前台js上傳文件的路徑
在Java Web項目中,若要從前端JavaScript接收並處理上傳的文件,可以通過Servlet來實現這一功能。具體來說,可以使用Apache Commons FileUpload庫來解析上傳文件。以下是使用DiskFileItemFactory和ServletFileUpload來讀取上傳文件路徑的代碼示例,我在項目中已經成功應用過該代碼。
首先,我們創建一個DiskFileItemFactory實例,並設置其大小閾值和臨時文件存儲路徑。接著,通過該工廠實例化上傳組件ServletFileUpload,並設置最大文件大小限制。
接下來,我們調用ServletFileUpload的parseRequest方法來解析請求中的文件列表。如果解析結果為空或為空列表,則拋出異常,表示沒有文件被上傳。否則,我們遍歷這些文件項,獲取每個文件的名稱,然後將其保存到指定的目錄。
具體代碼如下:
DiskFileItemFactory difif = new DiskFileItemFactory();
difif.setSizeThreshold(32 * 1024);
difif.setRepository(new File(tmpDir));
ServletFileUpload sfu = new ServletFileUpload(difif);
sfu.setSizeMax(MAX_SIZE);
List file_list = sfu.parseRequest(request);
if (file_list == null || file_list.size() == 0) {
throw new Exception("沒有文件被上傳");
} else {
File upLoadFile = null;
Iterator file_iterator = file_list.iterator();
// 獲取所有上傳的文件
while (file_iterator.hasNext()) {
FileItem file_item = (FileItem) file_iterator.next();
// 獲取上傳文件名
if (file_item.getContentType() == null) {
} else {
// 文件路徑
String path = file_item.getName();
String t_ext = path.substring(path.lastIndexOf(".") + 1);
// 開始保存文件
upLoadFile = new File(u_name);
file_item.write(upLoadFile);
}
}
}
通過這種方式,我們可以成功地從前端接收文件並保存到伺服器端。需要注意的是,上述代碼中的tmpDir和MAX_SIZE等變數需要根據實際情況進行設置。
總結來說,通過設置DiskFileItemFactory的大小閾值和臨時文件存儲路徑,並使用ServletFileUpload來解析請求中的文件列表,我們可以實現從前端JavaScript上傳文件到Java後台的功能。
❷ 用JAVA讀取文件信息
這段代碼是用Java讀取指定文件夾中的文件信息的一個示例。首先,需要導入java.io.File類。然後定義一個Test類,其中包含main方法和printFileList方法。
在main方法中,定義了一個字元串變數filePath,用來存放文件夾地址。接著創建一個File對象dir,將filePath傳入構造函數。通過dir.isDirectory()判斷filePath是否為文件夾,如果不是,輸出相應的提示信息。如果是文件夾,則調用printFileList方法,將dir.listFiles()的結果作為參數傳遞。
printFileList方法用於遍歷文件列表。通過for循環遍歷fileList數組,如果當前文件是文件(通過isFile()判斷),則輸出文件的絕對路徑和文件名,並計算文件大小並輸出。如果是目錄,則遞歸調用printFileList方法,繼續遍歷子文件夾中的文件。
這段代碼的邏輯清晰,能夠幫助我們了解如何使用Java讀取和遍歷文件夾中的文件信息。它適合初學者學習文件操作的基本概念,並能夠應用於實際的文件管理場景。
在實際使用時,可以根據需求修改代碼,比如添加異常處理,優化輸出格式等。同時,還可以進一步擴展功能,例如添加對文件屬性的處理,實現文件搜索等更復雜的功能。
總的來說,這段代碼提供了一個很好的起點,幫助我們了解如何使用Java進行文件操作。對於初學者來說,這是一個很好的學習材料。通過實踐和修改這段代碼,我們可以更好地掌握Java文件操作的相關知識。
❸ java 怎麼獲取上傳文件的大小
用InputStream打開該文件。
InputStream in =new FileInputStream("sdf.txt");
int size=in.available()
得到了size就是你該文件的位元組數