共計 1230 個字符,預計需要花費 4 分鐘才能閱讀完成。
要實現(xiàn) Java 多文件上傳,可以使用以下步驟:
-
在前端頁面中,使用 HTML 的
<input type="file" multiple>
來添加多個文件選擇框,并設置multiple
屬性允許選擇多個文件。 -
在后端 Java 代碼中,接收前端傳遞的文件數(shù)據(jù)。可以使用
javax.servlet.http.Part
對象來接收文件數(shù)據(jù)。通過request.getParts()
方法獲取所有上傳的文件部分,并遍歷每個部分進行處理。 -
遍歷每個
Part
對象,獲取文件名和文件數(shù)據(jù)。可以使用Part.getSubmittedFileName()
獲得文件名,使用Part.getInputStream()
獲得文件數(shù)據(jù)流。 -
將文件數(shù)據(jù)保存到指定的目錄中。可以使用
java.nio.file.Files.copy()
方法將文件數(shù)據(jù)流復制到目標文件夾中。
以下是一個簡單的示例代碼:
@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));
}
}
注意:上述示例代碼只是一個簡單的示例,可能還需要添加一些錯誤處理和安全性驗證的部分。另外,確保指定的保存路徑存在并且具備寫入權限。
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!
正文完