解析
在Java中,我們可以使用Servlet和JSP來實(shí)現(xiàn)服務(wù)器文件上傳和保存操作,具體步驟如下:
1、創(chuàng)建一個HTML表單,用于用戶選擇要上傳的文件。
2、創(chuàng)建一個Servlet,用于處理文件上傳請求。
3、在Servlet中,獲取上傳的文件,并將其保存到服務(wù)器的指定目錄。
4、創(chuàng)建一個JSP頁面,用于顯示文件上傳成功的信息。
代碼實(shí)現(xiàn)
1、創(chuàng)建HTML表單(upload.html)
<!DOCTYPE html> <html> <head> <meta charset="UTF8"> <title>文件上傳</title> </head> <body> <form action="UploadServlet" method="post" enctype="multipart/formdata"> 選擇文件:<input type="file" name="file"> <input type="submit" value="上傳"> </form> </body> </html>
2、創(chuàng)建Servlet(UploadServlet.java)
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.disk.*;
import org.apache.commons.fileupload.servlet.*;
@WebServlet("/UploadServlet")
@MultipartConfig(maxFileSize = 16177215) // 設(shè)置上傳文件的最大大小(單位:字節(jié))
public class UploadServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
// 配置上傳參數(shù)
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(10 1024 * 1024); // 設(shè)置上傳文件的最大大?。▎挝?/span>字節(jié))
upload.setHeaderEncoding("UTF8"); // 設(shè)置編碼格式
List<FileItem> items = upload.parseRequest(request); // 解析請求的內(nèi)容提取文件數(shù)據(jù)
for (FileItem item : items) {
if (!item.isFormField()) { // 如果項(xiàng)目不是普通字段(即:文件),則處理該文件數(shù)據(jù)
String fileName = item.getName(); // 獲取文件名(不包括路徑)
String filePath = "D:/upload"; // 設(shè)置文件保存的路徑(根據(jù)實(shí)際情況修改)
File storeFile = new File(filePath + File.separator + fileName); // 根據(jù)路徑、文件名生成完整的文件對象
item.write(storeFile); // 將上傳的文件保存到指定的路徑
}
}
request.setAttribute("message", "文件上傳成功!"); // 設(shè)置屬性,用于在JSP頁面顯示提示信息
} catch (Exception e) {
request.setAttribute("message", "文件上傳失敗:" + e.getMessage()); // 設(shè)置屬性,用于在JSP頁面顯示提示信息
} finally {
request.getRequestDispatcher("/result.jsp").forward(request, response); // 轉(zhuǎn)發(fā)請求到結(jié)果頁面(result.jsp)
}
}
}
3、創(chuàng)建JSP頁面(result.jsp)
<!DOCTYPE html> <html> <head> <meta charset="UTF8"> <title>文件上傳結(jié)果</title> </head> <body> <h2>文件上傳結(jié)果:${message}</h2> // 顯示提示信息(從request屬性中獲?。?</body> </html>