• uploadify批量上传


    js:

    $("#uploadify").uploadify({
    'uploader':'uploadServlet',
    'swf':'image/uploadify.swf',
    'cancelImg' : 'image/uploadify-cancel.png',
    'folder' : 'upload/full', //您想将文件保存到的路径 
    'queueID' : 'fileQueue',//与下面的id对应 
    'queueSizeLimit' : 5, 
    'fileSizeLimit' : '2MB',
    'fileTypeDesc' : 'jpg文件或png文件', 
    'fileTypeExts' : '*.jpg;*.png', //控制可上传文件的扩展名,启用本项时需同时声明fileDesc 
    'auto' : false, 
    'multi' : true, 
    'simUploadLimit' : 2, 
    'buttonText' : '选择文件',
    'onUploadSuccess':function(file,data,response){
    console.log(data);
    $("#picList").append(data);
    }
    });
    

      

    后台servlet:

    package com.lab.util;
    
    import java.io.File;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.Date;
    import java.util.Iterator;
    import java.util.List;
    
    import javax.annotation.Resource;
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    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;
    import org.apache.log4j.Logger;
    
    import com.lab.po.ClientPO;
    import com.lab.po.IbeaconPO;
    import com.lab.po.PicturePO;
    import com.lab.service.ClientService;
    import com.lab.service.PictureService;
    import com.lab.service.impl.PictureServiceImpl;
    
    
    /**
     * Servlet implementation class uploadServlet
     */
    public class uploadServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
           
    	private static Logger logger = Logger.getLogger(uploadServlet.class);
        /**
         * @see HttpServlet#HttpServlet()
         */
        public uploadServlet() {
            super();
            // TODO Auto-generated constructor stub
        }
    
    	/**
    	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    	}
    
    	/**
    	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		request.setCharacterEncoding("utf-8");
    		response.setCharacterEncoding("utf-8");
    		
    		DiskFileItemFactory factory = new DiskFileItemFactory();
    		
    		ServletFileUpload sfUpload = new ServletFileUpload(factory);
    		sfUpload.setFileSizeMax(5000*1024);
    		
    		boolean flag = false; 
    		String fileName = null;
    		ServletContext svct = getServletContext();
    		String path=svct.getRealPath("upload");
    		System.out.println(path);
    		
    		try {
    			List<FileItem> list = sfUpload.parseRequest(request);
    			Iterator<FileItem> items = list.iterator();
    			while(items.hasNext()){
    				FileItem item = items.next();
    				if(!item.isFormField()){
    					
    					fileName = item.getName();
    					System.out.println(fileName);
    					
    					fileName = System.currentTimeMillis()+fileName.substring(fileName.lastIndexOf("."));
    					String uploadDir = path+"\full\"+fileName;
    					File file = new File(path);
    					if(!file.exists()){
    						file.mkdir();					
    					}
    					File ffile = new File(uploadDir);
    					if(!ffile.exists()){
    						item.write(ffile);
    						flag=true;
    					}
    					
    				}
    			}
    			
    		} catch (FileUploadException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		if(flag){
    			String fullPath=path+"\full\"+fileName;
    			String thumbPath=path+"\thumb\"+fileName;
    			PictureUtil.toThumbPic(fullPath, thumbPath);
    			PicturePO picturePO = new PicturePO();
    			picturePO.setFull_path("upload\full\"+fileName);
    			picturePO.setThumb_path("upload\thumb\"+fileName);
    			HttpSession session = request.getSession(false);
    			if(session!=null){
    				picturePO.setIbeaconPO((IbeaconPO)session.getAttribute("ibeacon"));
    			}
    			//调用service方法时,只能通过getbean的方法得到service实例,普通的@resource不能用。
    			PictureService pictureService=(PictureService) AppContext.getInstance().getAbstractApplicationContext().getBean("pictureService");
    			
    			//PictureService pictureService = new PictureServiceImpl();
    			System.out.println(picturePO.getId());
    			String resultString=null;
    			if(pictureService.addPicture(picturePO)){
    				if(session.getAttribute("client")!=null){
    					ClientPO clientPO = (ClientPO) session.getAttribute("client");
    					clientPO.setUpdateDate(new Date());
    					ClientService clientService = (ClientService) AppContext.getInstance().getAbstractApplicationContext().getBean("clientService");
    					clientService.updateClient(clientPO);
    				}
    				logger.info("上传图片成功!");
    				System.out.println(picturePO.getId());
    				resultString = "<li><div class='myCheckbox'><input type='checkbox' name='picCheck' value='"+picturePO.getId()+"' /></div><img onclick='showFullPic("+picturePO.getId()+")' src='"+picturePO.getThumb_path()+"' class='img-thumbnail'><br/><span><button type='button' class='btn btn-default btn-sm' onclick='deletePic("+picturePO.getId()+",this)'>删除</button></span></li>";
    			}else{
    				resultString = "false";
    			}
    			
    			
    			response.getWriter().print(resultString);
    			//out.println("<script>parent.callBack('"+fileName+"')</script>");
    		}else{
    			//out.println("<script>parent.callBack('upload failed')</script>");
    		}
    	}
    
    }
    

      

  • 相关阅读:
    JavaScript 操作注意事项(此日志持续更新)
    JavaScript省市级联
    Outlook 2013 中添加 live.cn 帐户
    readonly, const, static, static readonly 关键字实例说明
    Windows 8 应用开发常见问题及解决方案(持续更新)
    【转】用C#动态创建Access数据库
    使用 Layer 弹出 iframe 层,并让 iframe 自适应内容宽高
    Visual Studio 常见问题及解决方案(持续更新)
    Python核心编程学习日记之模块
    Python核心编程学习日记之函数式编程
  • 原文地址:https://www.cnblogs.com/suiblog/p/3645323.html
Copyright © 2020-2023  润新知