SpringMVC上传图片与访问
关于springmvc上传图片的方法小编给大家整理了两种方法,具体内容如下所示:
第一种:(放在该项目下的物理地址对应的位置)
a.路径写法:
StringbasePath="/WEB-INF/resources/upload";
StringfilePathName=request.getSession().getServletContext().getRealPath(basePath);存放路径
b.实际路径:
D:\WorkSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\XYT\WEB-INF\resources\upload\图片名称
c.访问路径:http://localhost:8080/XYT/resources/upload/图片名称
d.前提:只要这个项目能运行就行。
第二种:(创建虚拟路径,配置Tomcat下server.xml,创建存储路径和访问路径)
1.路径写法:
StringfilePathName=Constant.IMG_PATH+File.separator+"upload";
其中:publicstaticfinalStringIMG_PATH="E:\\Java\\img";
2.路径配置:
Server.xml配置
<Hostname="localhost"appBase="webapps" unpackWARs="true"autoDeploy="true"> <ValveclassName="org.apache.catalina.valves.AccessLogValve"directory="logs" prefix="localhost_access_log."suffix=".txt" pattern="%h%l%u%t"%r"%s%b"/> <!--add(savepictures)--> <Contextpath="/upload"docBase="E:\Java\img\upload"></Context> </Host>
3.实际路径:E:\Java\img\upload
4.访问路径:http://localhost:8080/upload/图片名称
5.参考:http://my.oschina.net/pingdy/blog/381001
6.前提:必须打开Tomcat服务器
举例:上传图片的实例:(可以上传多张图片)
JSONObjectrs=newJSONObject();
CommonsMultipartResolvermultipartResolver=newCommonsMultipartResolver(
request.getSession().getServletContext());
Stringurl="";
if(multipartResolver.isMultipart(request)){
MultipartHttpServletRequestmultiRequest=(MultipartHttpServletRequest)request;
Iterator<String>iter=multiRequest.getFileNames();
while(iter.hasNext()){
MultipartFilefile=multiRequest.getFile((String)iter.next());
if(file!=null){
StringoriginalFileName=file.getOriginalFilename();
String[]f=originalFileName.split("\\.");
Stringext="";
if(f!=null&&f.length>1){
ext=f[f.length-1];
System.out.println(ext);
}
System.out.println(allowImgType==null);
if(!allowImgType.contains(ext.toUpperCase())){
rs.put("code","ERR_UPLOAD_0003");
rs.put("msg","类型错误");
returnrs;
}
//StringbasePath="/WEB-INF/resources/upload";//StringfilePathName=request.getSession().getServletContext().getRealPath(basePath);
StringfilePathName=Constant.IMG_PATH+File.separator+"upload";
url=filePathName;
System.out.println(url);
//上传后记录在path这个路径下。
FilelocalFile=newFile(filePathName);
if(!localFile.exists()){
localFile.mkdir();
}
//compress
Stringfname=newDate().getTime()+"."+ext;
StringoriginalFname=fname.substring(0,fname.indexOf("."))+"_original."+ext;
StringfileName=filePathName+File.separator+fname;
StringoFileName=filePathName+File.separator+originalFname;
Fileinfile=newFile(fileName);
FileoFile=newFile(oFileName);
try{
ImageHelper.compress(file.getInputStream(),600,infile);
file.transferTo(oFile);//original上传原图
JSONObjectobj=newJSONObject();
rs.put("code",Constant.CODE_SUCCESS);
rs.put("data",obj.toString());
}catch(Exceptione){
rs.put("code","ERR_UPLOAD_0001");
rs.put("msg","ERR_UPLOAD_0001");
e.printStackTrace();
returnrs;
}
}
以上所述是针对SpringMVC上传图片与访问的相关内容,希望对大家有所帮助。