springmvc图片上传

配置虚拟目录
在tomcat上配置图片虚拟目录,在tomcat下conf/server.xml中添加:
<Context docBase="F:\develop\upload\temp" path="/pic" reloadable="false"/>

访问http://localhost:8080/pic即可访问F:\develop\upload\temp下的图片。

也可以通过eclipse配置:

单图片上传

在springmvc.xml配置

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"></bean>

id必须为multipartResolver

图片上传为异步

异步上传图片   jquery.form.js  将模拟一个下面的form   ajax 异步提交上去

jsp中书写:

function uploadPic(){
    var options = {
            url : "/upload/uploadPic.do",
            type : "post",
            dataType : "json",
            success : function(data){
                //回显
                $("#allUrl").attr("src",data.path);
            }
    }
    $("#jvForm").ajaxSubmit(options);
}

<form id="jvForm" action="edit.do" method="post">

<tr>
          <td width="20%" class="pn-flabel pn-flabel-h"></td>
            <td width="80%" class="pn-fcontent">
                       <img width="100" height="100" id="allUrl"/>
                        <input type="hidden" name="imgUrl" id="imgUrl"/>
                        <input type="file" name="pic" οnchange="uploadPic()"/>
                    </td>
                </tr>

</form>

类的书写

@Controller
public class UploadController {

    //上传图片 异步的
    @RequestMapping(value = "/upload/uploadPic.do")
    public void uploadPic(MultipartFile pic,HttpServletRequest request
            ,HttpServletResponse response) throws Exception{
        
        System.out.println(pic.getOriginalFilename());
        //分布式文件 系统  FastDFS
        String ext = FilenameUtils.getExtension(pic.getOriginalFilename());
        String name = UUID.randomUUID().toString() + "." + ext;
        
        String path = "/upload/" + name;
        
        //全路径
        String url = request.getSession().getServletContext().getRealPath("") + path;
        //保存到指定位置
        pic.transferTo(new File(url));
        
        JSONObject jo = new JSONObject();
        jo.put("path", path);
        response.setContentType("application/json;charset=UTF-8");
        response.getWriter().write(jo.toString());
        
    }
}

MultipartFile pic的pic对应的是 <input type="file" name="pic" οnchange="uploadPic()"/>的name


多张图片上传
参数修改为MultipartFile[] pics的pics对应的是 <input type="file" name="pics" οnchange="uploadPic()"/>的name,这个input标签还有加上multiple=‘multiple’属性


富文本编辑器图片上传

//富文本编辑器上传图片
    @RequestMapping(value = "/upload/uploadFck.do")
    public void uploadFck(HttpServletRequest request,HttpServletResponse response) throws IOException, Exception{
        //无敌版接收图片
        //spring  
        MultipartRequest mr = (MultipartRequest)request;
        //里面只有图片  没有文本
        Map<String, MultipartFile> fileMap = mr.getFileMap();
        Set<Entry<String, MultipartFile>> entrySet = fileMap.entrySet();
        for (Entry<String, MultipartFile> entry : entrySet) {
            MultipartFile pic = entry.getValue();
            //分布式文件 系统  FastDFS
            String path = uploadService.uploadPic(pic.getBytes(), pic.getOriginalFilename(), pic.getSize());
            JSONObject jo = new JSONObject();
            jo.put("url", Constants.IMG_URL + path);
            jo.put("error", 0);
            response.setContentType("application/json;charset=UTF-8");
            response.getWriter().write(jo.toString());
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值