文件上傳(FileUpload)
1.使用JAR
??????jsp文件上傳主要使用了兩個jar包,commons-fileupload-1.2.1.jar和commons-io-1.4.jar
2.代碼實現
???? public class UploadServlet extends HttpServlet {
?/**
? *
? */
?private static final long serialVersionUID = 1L;
?private ServletContext sc;
?private String savePath;
?@Override
?protected void doGet(HttpServletRequest request,
???HttpServletResponse response) throws ServletException, IOException {
??doPost(request, response);
?}
?@Override
?protected void doPost(HttpServletRequest request,
???HttpServletResponse response) throws ServletException, IOException {
??System.out.println("請求進來了..........");
??// 設置請求的編碼
??request.setCharacterEncoding("UTF-8");
??DiskFileItemFactory factory = new DiskFileItemFactory();//創建一個磁盤文件工廠
??ServletFileUpload upload = new ServletFileUpload(factory);
??try {
???List items = upload.parseRequest(request);
???Iterator it = items.iterator();
???while (it.hasNext()) {
????FileItem item = (FileItem) it.next();
????if (item.isFormField()) {
?????System.out.println("表單的參數名稱:" + item.getFieldName()
???????+ ",對應的參數值:" + item.getString("UTF-8"));
????} else {
?????// 獲取文件擴展名
?????String strtype = item.getName().substring(
???????item.getName().length() - 3,
???????item.getName().length());
?????strtype = strtype.toLowerCase();
?????if (strtype == "jpg" || strtype == "gif"
???????|| strtype == "txt") {
??????if (item.getName() != null
????????&& !item.getName().equals("")) {
???????System.out.println("上傳文件的大小:" + item.getSize());
???????System.out.println("上傳文件的類型:"
?????????+ item.getContentType());
???????System.out.println("上傳文件的名稱:" + item.getName());
???????System.out.println("文件的擴展名" + strtype);
???????File tempFile = new File(item.getName());
???????File file = new File(
?????????sc.getRealPath("/") + savePath, tempFile
???????????.getName());
???????item.write(file);
???????request.setAttribute("upload.message", "上傳文件成功!");
??????} else {
???????request.setAttribute("upload.message",
?????????"沒有選擇上傳文件獲取格式不支持");
??????}
?????} else {
??????request.setAttribute("upload.message", "上傳文件格式不支持");
?????}
????}
???}
??} catch (Exception e) {
???e.printStackTrace();
???request.setAttribute("upload.message", "上傳文件不成功!");
??}
??// 轉發
??request.getRequestDispatcher("/uploadResult.jsp").forward(request,
????response);
?}
?@Override
?public void init(ServletConfig config) throws ServletException {
??savePath = config.getInitParameter("savePath");
??sc = config.getServletContext();
?}
posted on 2009-11-08 16:30 IT追求者 閱讀(170) 評論(0) 編輯 收藏 所屬分類: Jsp