SpringMVC图片文件跨服务器上传
图片文件跨服务器上传(我使用的公司云桌面作为上传服务器,自己的笔记本作为存储服务器测试的)
一、上传服务器:
1、pom文件(使用jersey插件)
commons-fileupload commons-fileupload 1.3.1 commons-io commons-io 2.4 commons-codec commons-codec 1.9 com.sun.jersey jersey-client 1.18.6 com.sun.jersey jersey-core 1.18.6 org.glassfish.jersey.core jersey-common 2.26
2、前端页面:
多个文件:
3、后台controller:
/**
*多文件,跨服务器上传
*@paramrequest
*@return
*/
@ResponseBody
@RequestMapping("/uploadImg")
publicStringfileUpload(MultipartHttpServletRequestrequest){
JSONObjectjoson=newJSONObject();
StringserverAddress="http://172.xxx.xxx.xxx:8080";//服务器地址
Stringfolder="/upload/";//文件夹名称
StringfullPaths="";//绝对路径
StringreletivePaths="";//相对路径
//创建jesy服务器
Clientclient=Client.create();
//获取文件名字
IteratorfileNames=request.getFileNames();
ListfileNameList=newArrayList();
ListrelaPathList=newArrayList();
ListrealPathList=newArrayList();
try{
while(fileNames.hasNext()){//判断多文件
//把fileNames集合中的值打出来
StringfileName=fileNames.next();
//request.getFiles(fileName)方法即通过fileName这个Key,得到对应的文件集合列表.
//只是在这个Map中,文件被包装成MultipartFile类型
ListfileList=request.getFiles(fileName);
if(fileList.size()>0){
//遍历文件列表
IteratorfileIte=fileList.iterator();
while(fileIte.hasNext()){
//获得每一个文件
MultipartFilemultipartFile=fileIte.next();
//截取文件的后缀名(.jpg)
StringoriginalFilename=multipartFile.getOriginalFilename();//原始文件名
StringsubString=originalFilename.substring(originalFilename.indexOf("."));//文件名后缀
//System.out.println("原始文件名:"+originalFilename+";文件后缀名:"+subString);
//将文件对象转换为字节
byte[]fileBytes=multipartFile.getBytes();
//生成唯一的一个字符串名称(带后缀)
StringnewFilename=UUID.randomUUID().toString()+subString;
//System.out.println("唯一文件名(带后缀):"+newFilename);
//开始上传文件
//拼接保存的路径(相对路径)
reletivePaths=folder+newFilename;
//拼接最终保存的路径(绝对对路径)
fullPaths=serverAddress+reletivePaths;
//把文件关联到远程服务器
WebResourcewebResource=client.resource(fullPaths);
//上传
webResource.put(String.class,fileBytes);
fileNameList.add(newFilename);//文件名
relaPathList.add(reletivePaths);//相对路径
realPathList.add(fullPaths);//真实完整路径
}
joson.put("success",1);
joson.put("error","");
joson.put("fileNameList",fileNameList);
joson.put("relaPathList",relaPathList);
joson.put("realPathList",realPathList);
}else{
joson.put("success",0);
joson.put("error","上传失败");
}
}
}catch(UniformInterfaceExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
joson.put("success",0);
joson.put("error","上传失败");
}catch(ClientHandlerExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
joson.put("success",0);
joson.put("error","上传失败");
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
joson.put("success",0);
joson.put("error","上传失败");
}
returnjoson.toString();
}
二、存储图片文件服务器:
1、Tomcat的conf目录下的web.xml文件的大概100行添加如下几行(这要是不打开就会报错)
default org.apache.catalina.servlets.DefaultServlet debug 0 readonly false listings false 1
2、在该Tomcat的/webapps/ROOT目录下创建一个upload目录,用来存放上传的文件
3、启动Tomcat静等着上传服务器那边的请求
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。