springmvc图片上传功能

<div class="iteye-blog-content-contain" style="font-size: 14px"><p>图片上传功能</p>

<input type=file class="upImg" name="myfiles" id="doc" onchange="javascript:setImagePreview();" multiple="multiple"> 
<div id="localImag" style="display: inline-block; width: 40%; vertical-align: top; text-align: center;"><img id="preview" style="diplay: none;" alt="" width="-1" height="-1" /></div>
<script type="text/javascript">// <![CDATA[
function setImagePreview() { 
    var docObj=document.getElementById("doc"); 
    var imgObjPreview=document.getElementById("preview"); 
    if(docObj.files && docObj.files[0]){ 
        //火狐下,直接设img属性 
        imgObjPreview.style.display = 'inline-block'; 
        imgObjPreview.style.width = '401px'; 
        imgObjPreview.style.height = '201px';                     
        $('#imgsrc').val(docObj.files[0].name);
        try{
        imgObjPreview.src = window.URL.createObjectURL(docObj.files[0]);
        $.ajaxFileUpload({
            //处理文件上传操作的服务器端地址(可以传参数,已亲测可用)
            url:"/manage.onigiri/userInfo/cancleBindCard/imageFileUpload",
            secureuri:false,                       //是否启用安全提交,默认为false
            fileElementId:'doc',           //文件选择框的id属性
            fileSize:10240000,
            allowType:'jpg,jpeg,png,JPG,JPEG,PNG,gif,GIF',                    //服务器返回的格式,可以是json或xml等
            success:function(data, status){        //服务器响应成功时的处理函数
            if(status == 'success'){
            alert("图片上传成功!!!");
            }
            },
            error:function(data, status, e){ //服务器响应失败时的处理函数
            alert("图片上传失败!!!");
            }
        });
       
        }catch(e){ 
            alert("您上传的图片格式不正确,请重新选择!"); 
            return false; 
        } 
    }else{ 
        //IE下,使用滤镜 
        docObj.select(); 
        var imgSrc = document.selection.createRange().text; 
        var localImagId = document.getElementById("localImag"); 
        //必须设置初始大小 
        imgObjPreview.style.width = '401px'; 
        imgObjPreview.style.height = '201px';
        //图片异常的捕捉,防止用户修改后缀来伪造图片 
        try{ 
            localImagId.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)"; 
            localImagId.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc; 
        }catch(e){ 
            alert("您上传的图片格式不正确,请重新选择!"); 
            return false; 
        } 
        imgObjPreview.style.display = 'none'; 
        document.selection.empty(); 
    } 
    return true; 
}
// ]]></script></div>

/**后台文件处理*/

@RequestMapping(value="/cancleBindCard/imageFileUpload", method = RequestMethod.POST)
    public Object imageFileUpload(@RequestParam MultipartFile[] myfiles, HttpServletRequest request, HttpServletResponse response){
        Object retObj = null;
        String type = request.getParameter("type");
        //可以在上传文件的同时接收其它参数
        response.setContentType("text/plain; charset=UTF-8");
        String originalFilename = null;
        String path1 = request.getSession().getServletContext().getRealPath("");
        path1 = path1.substring(0, path1.length()-16);
        String realPath = STATIC_PATH + imgUrl;
        for(MultipartFile myfile : myfiles){
            if(myfile.isEmpty()){
                retObj = Msg.error("请选择文件后上传");
            }else{
                try {
                    Thread.sleep(100);
                    UploadAction upa = new UploadAction();
                    upa.sendMultiFile(myfile.getInputStream(), realPath + myfile.getOriginalFilename());
                    return Msg.info("上传成功!");
                } catch (Exception e) {
                    if("attach"==type){
                        logger.error("文件[" + myfile.getOriginalFilename() + "]上传失败,堆栈轨迹如下");
                    }else{
                        logger.error("文件[" + originalFilename + "]上传失败,堆栈轨迹如下");
                    }
                    retObj = Msg.error("文件上传失败,请重试!");
                }
            }
        }
        return retObj;
    }
    //具体上传的文件HTTP处理没有写

猜你喜欢

转载自fengruiqi.iteye.com/blog/2338968