springmvc+uploadify3.2

4 篇文章 0 订阅

一、在head标签中引入js文件(包括jquery和uploadify的js文件)

<script type="text/javascript" src="../js/jquery.1.11.1.min.js"></script>

<script type="text/javascript" src="../uploadify/jquery.uploadify.min.js"></script>

二、js代码,属性的含义请执行参考官方文档

<script type="text/javascript">
        $(function(){
            var id = $("#sessionId").val();
            alert(id);
            $("#uploadify").uploadify({
                swf:'../uploadify/uploadify.swf',
                uploader:'../io/upload.do;JSESSIONID='+id,//网上查阅追加sessionId能解决使用火狐浏览器的302问题,但是我这里并没有解决,正在找方法。。。。
                buttonCursor:'hand',
                buttonText:'浏览',
                fileSizeLimit:'2MB',
                uploadLimit:'5',
                fileTypeDesc:'请选择jpg格式的图片',
                fileTypeExts:'*.jpg',
                method:'Post',
                multi:true,
                auto:false,
                removeCompleted:true,
                preventCaching:true,
                removeTimeout:'2',
        });
        });
    </script>

三、jsp代码

 <input type="file" id="uploadify" name="file">
    <input type="hidden" id="sessionId" value="<%=request.getSession().getId()%>">
    <p>
        <a href="javascript:$('#uploadify').uploadify('upload','*')">上传</a>
        <a href="javascript:$('#uploadify').uploadify('cancel','*');">取消上传</a>
    </p>

四、后台上传代码

@RequestMapping("/upload.do")
    public String upload(HttpServletRequest request,HttpServletResponse response) throws IllegalStateException, IOException{
        //图片保存路径
        String savePath = request.getServletContext().getRealPath("/images");
        //允许上传的图片格式
        List<String> fileTypes = new ArrayList<String>();
        fileTypes.add("jpg");
        fileTypes.add("jpeg");
        fileTypes.add("bmp");
        fileTypes.add("png");
        fileTypes.add("gif");
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
        Map<String,MultipartFile> fileMap = multipartRequest.getFileMap();
        for(Map.Entry<String, MultipartFile> entity : fileMap.entrySet()){
            MultipartFile file = entity.getValue();
            //获取文件名(带后缀)
            String fileName = file.getOriginalFilename();
            //获取文件后缀
            String ext = fileName.substring((fileName.lastIndexOf(".")+1)).toLowerCase();
            //新的文件名:当前时间戳+后缀
            String newFileName = String.valueOf(System.currentTimeMillis()+"."+ext);
            //保存图片到服务器
            if(fileTypes.contains(ext)){
                //保存图片路径,按月来创建文件夹
                SimpleDateFormat df = new SimpleDateFormat("yyyyMM");
                savePath += "/"+df.format(new Date());
                File fileDir = new File(savePath);
                if(!fileDir.exists()){
                    fileDir.mkdirs();
                }
                //file.transferTo(fileDir);
                try {
                    FileOutputStream out = new FileOutputStream(savePath+"/"+newFileName);
                    InputStream in =  file.getInputStream();
                    byte[] buffer = new byte[1024];
                    int length = 0;
                    while((length = in.read(buffer))>0){
                        out.write(buffer, 0, length);
                    }
                    out.flush();
                    out.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
        
        return null;
    }


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值