配置虚拟目录
在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());
}
}