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(); List fileNameList=newArrayList (); List relaPathList=newArrayList (); List realPathList=newArrayList (); try{ while(fileNames.hasNext()){//判断多文件 //把fileNames集合中的值打出来 StringfileName=fileNames.next(); //request.getFiles(fileName)方法即通过fileName这个Key,得到对应的文件集合列表. //只是在这个Map中,文件被包装成MultipartFile类型 List fileList=request.getFiles(fileName); if(fileList.size()>0){ //遍历文件列表 Iterator fileIte=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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。