String filename = request.getParameter("image"); // 錯誤:獲取的是文件名而非文件內容
FileInputStream str = new FileInputStream(filename); // 服務器嘗試讀取客戶端本地路徑
@WebServlet("/upload")
@MultipartConfig
public class UploadServlet extends HttpServlet {
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Part filePart = req.getPart("image"); // 對應
try (InputStream fileContent = filePart.getInputStream()) {
// 直接操作 fileContent 存入數據庫或寫入服務器磁盤
// pstmt.setBinaryStream(1, fileContent, filePart.getSize());
}
}
}
<form action="upload" method="post" enctype="multipart/form-data">
<input type="file" name="image" accept="image/*">
<button type="submit">上傳</button>
</form>
JSP 文件上傳 FileNotFoundException,request.getParameter 無法獲取文件流,multipart/form-data 編碼,Servlet 3.0 Part API 正確用法。