`

多文件上传

阅读更多
一、到http://www.uploadify.com/下载最新版,我的是jquery.uploadify-v1.6.2 (MIT)
二、下载包解压放在对应位置
三、HttpServlet,如下:
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        ServletContext servletContext = this.getServletConfig().getServletContext();
        ApplicationContext appContext = WebApplicationContextUtils.getWebApplicationContext(servletContext);
        UploadFileDao dao = (UploadFileDao) appContext.getBean("uploadFileDao");
        String savePath = this.getServletConfig().getServletContext()
        .getRealPath("/")
        + UPLOAD_FOLDER;
        DiskFileItemFactory fac = new DiskFileItemFactory();
        ServletFileUpload upload = new ServletFileUpload(fac);
        List fileList = null;
        try {
            fileList = upload.parseRequest(req);
        } catch (FileUploadException ex) {
            ex.printStackTrace();
            return;
        }
        Iterator<FileItem> it = fileList.iterator();
        StringBuilder sb = new StringBuilder();
        while(it.hasNext()){
            FileItem item =  it.next();
            if(!item.isFormField()){
                String name = item.getName();
                long size = item.getSize();
                String type = item.getContentType();
                if(StringUtils.isBlank(name))
                    continue;
                File saveFile = new File(savePath+name);
                try {
                    item.write(saveFile);
                    String format = "yyyy/MM/dd hh:mm:ss";
                    UploadFile uploadFile = new UploadFile();
                    uploadFile.setCreateTime(DateUtil.getCurDateString(format));
                    uploadFile.setName(UUID.randomUUID().toString());
                    uploadFile.setOrgName(name);
                    uploadFile.setType(type);
                    uploadFile.setSize(size);
                    dao.save(uploadFile);
                    if(StringUtils.isBlank(sb.toString()))
                        sb.append(uploadFile.getId());
                    else
                        sb.append(";"+uploadFile.getId());
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
       
        resp.getWriter().print(sb.toString());
    }

四、对应调用页面,jsp:
引入必要的css和javascript
头部:

//upload file
            $("#fileUpload").fileUpload({
                'uploader': '${ctx}/js/uploadify/uploader.swf',
                'cancelImg': '${ctx}/js/uploadify/cancel.png',
                'script': '${ctx}/file/upload',
                'folder': 'upload',
                'multi': true,
                'buttonText': 'Select Files',
                'displayData': 'speed',
                onComplete:    function(event,queueID,fileObj,response,data) {
                                var fm = document.forms[0];
                                var fileInputs = document.getElementsByName("logos");
                                for(var i=0;i<fileInputs.length;i++){
                                    fm.removeChild(fileInputs[i]);
                                }
                                //生成隐藏字段
                                var fileInput = document.createElement("input");
                                fileInput.setAttribute("name","logos");
                                fileInput.setAttribute("value",fileObj.name);
                                fileInput.setAttribute("type","hidden");
                                fm.appendChild(fileInput);
                }
            });


页面body:
<div id="fileUpload">You have a problem with your javascript</div>
<a href="javascript:$('#fileUpload').fileUploadStart()">Start Upload</a> |  <a href="javascript:$('#fileUpload').fileUploadClearQueue()">Clear Queue</a>


分享到:
评论
4 楼 mogui258 2010-08-22  
owner888 写道
用flash上传,很多问题的,首先,FF下的flash不能把cookie上传到服务器上,而IE下的flash却可以(adobe公司的问题)。第二,传路径的时候不能传物理路径,必须修改flash源文件,第三,FF在https下上传有IO Error,(也是adobe公司的问题)。我也在研究这个,有兴趣上我网看看,http://kukaka.org.cn,交流交流心得,上面有我写的解决办法。

就接着装C吧!
3 楼 owner888 2009-08-17  
用flash上传,很多问题的,首先,FF下的flash不能把cookie上传到服务器上,而IE下的flash却可以(adobe公司的问题)。第二,传路径的时候不能传物理路径,必须修改flash源文件,第三,FF在https下上传有IO Error,(也是adobe公司的问题)。我也在研究这个,有兴趣上我网看看,http://kukaka.org.cn,交流交流心得,上面有我写的解决办法。
2 楼 dong_java 2009-07-29  
.....怎么给服务器端传值啊。晕死没搞懂,请赐教比如struts2,谢谢
1 楼 dong_java 2009-07-27  
刚刚看到这个插件感觉不错就是不知道怎么用,英文又差,您能把你写的例子源码(jsp,java)给我发一份吗?先谢谢了!
dong_java@126.com

相关推荐

Global site tag (gtag.js) - Google Analytics