servlet上傳圖片


package servlet;

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

/**
 * 文件上傳
 * @author Administrator
 *
 */
public class UploadServlet extends HttpServlet {
    
    List piclist=new ArrayList();  //放上傳的圖片名
     
    public void destroy() {
        super.destroy(); // Just puts "destroy" string in log
        // Put your code here
    }

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        
        String path=request.getRealPath("/heads");
        
         
        DiskFileItemFactory factory=new DiskFileItemFactory();
        ServletFileUpload sfu=new ServletFileUpload(factory);
        sfu.setHeaderEncoding("UTF-8");  //處理中文問題
        sfu.setSizeMax(1024*1024);   //限制文件大小
        
        try {
            List<FileItem> fileItems= sfu.parseRequest(request);  //解碼請求 得到所有表單元素
            for (FileItem fi : fileItems) {
                //有可能是 文件,也可能是普通文字 
                if (fi.isFormField()) { //這個選項是 文字 
                    System.out.println("表單值為:"+fi.getString());
                }else{
                    // 是文件
                    String fn=fi.getName();
                    System.out.println("文件名是:"+fn);  //文件名 
                    // fn 是可能是這樣的 c:\abc\de\tt\fish.jpg
                    fi.write(new File(path,fn));
                    
                    if (fn.endsWith(".jpg")) {
                        piclist.add(fn);  //把圖片放入集合
                    }
                }                
            }    
            
        } catch (Exception e) {
            e.printStackTrace();
        }
        
        
        //去顯示上傳的文件
        request.setAttribute("pics", piclist);
        request.getRequestDispatcher("show").forward(request, response);
        
        

         
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // fix 修改過
        doGet(request, response);
    }

    /**
     * Initialization of the servlet. <br>
     *
     * @throws ServletException if an error occurs
     */
    public void init() throws ServletException {
        // Put your code here
    }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM