要實現Java多文件上傳,可以使用以下步驟:
在前端頁面中,使用HTML的<input type="file" multiple>
來添加多個文件選擇框,并設置multiple
屬性允許選擇多個文件。
在后端Java代碼中,接收前端傳遞的文件數據。可以使用javax.servlet.http.Part
對象來接收文件數據。通過request.getParts()
方法獲取所有上傳的文件部分,并遍歷每個部分進行處理。
遍歷每個Part
對象,獲取文件名和文件數據。可以使用Part.getSubmittedFileName()
獲得文件名,使用Part.getInputStream()
獲得文件數據流。
將文件數據保存到指定的目錄中。可以使用java.nio.file.Files.copy()
方法將文件數據流復制到目標文件夾中。
以下是一個簡單的示例代碼:
@WebServlet("/upload")
@MultipartConfig
public class UploadServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Collection<Part> parts = request.getParts();
for (Part part : parts) {
String fileName = getFileName(part);
InputStream fileContent = part.getInputStream();
saveFile(fileName, fileContent);
}
}
private String getFileName(Part part) {
String contentDisposition = part.getHeader("content-disposition");
String[] tokens = contentDisposition.split(";");
for (String token : tokens) {
if (token.trim().startsWith("filename")) {
return token.substring(token.indexOf("=") + 2, token.length() - 1);
}
}
return "";
}
private void saveFile(String fileName, InputStream fileContent) throws IOException {
Files.copy(fileContent, Paths.get("/path/to/save/" + fileName));
}
}
注意:上述示例代碼只是一個簡單的示例,可能還需要添加一些錯誤處理和安全性驗證的部分。另外,確保指定的保存路徑存在并且具備寫入權限。