图片文件跨服务器上传(我使用的公司云桌面作为上传服务器,自己的笔记本作为存储服务器测试的)
一、上传服务器:
1、pom文件(使用jersey插件)
<!-- 上传组件包 --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.9</version> </dependency> <!-- 夸服务器文件上传 --> <!-- https://mvnrepository.com/artifact/com.sun.jersey/jersey-client --> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-client</artifactId> <version>1.18.6</version> </dependency> <!-- https://mvnrepository.com/artifact/com.sun.jersey/jersey-core --> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-core</artifactId> <version>1.18.6</version> </dependency> <!-- https://mvnrepository.com/artifact/org.glassfish.jersey.core/jersey-common --> <dependency> <groupId>org.glassfish.jersey.core</groupId> <artifactId>jersey-common</artifactId> <version>2.26</version> </dependency>
2、前端页面:
<form action="${pageContext.request.contextPath}/Abc/uploadImg.do" enctype="multipart/form-data" method="post"> 多个文件: <input type="file" name="fileList" multiple/> <input type="submit" value="提交" /> </form>
3、后台controller:
/** * 多文件,跨服务器上传 * @param request * @return */ @ResponseBody @RequestMapping("/uploadImg") public String fileUpload(MultipartHttpServletRequest request){ JSONObject joson = new JSONObject(); String serverAddress = "http://172.xxx.xxx.xxx:8080";//服务器地址 String folder = "/upload/";//文件夹名称 String fullPaths = "";//绝对路径 String reletivePaths = "";//相对路径 // 创建jesy服务器 Client client = Client.create(); // 获取文件名字 Iterator<String> fileNames = request.getFileNames(); List<String> fileNameList = new ArrayList<String>(); List<String> relaPathList = new ArrayList<String>(); List<String> realPathList = new ArrayList<String>(); try { while (fileNames.hasNext()) {//判断多文件 // 把fileNames集合中的值打出来 String fileName = fileNames.next(); // request.getFiles(fileName)方法即通过fileName这个Key, 得到对应的文件集合列表. // 只是在这个Map中, 文件被包装成MultipartFile类型 List<MultipartFile> fileList = request.getFiles(fileName); if (fileList.size() > 0) { // 遍历文件列表 Iterator<MultipartFile> fileIte = fileList.iterator(); while (fileIte.hasNext()) { // 获得每一个文件 MultipartFile multipartFile = fileIte.next(); // 截取文件的后缀名(.jpg) String originalFilename = multipartFile.getOriginalFilename();//原始文件名 String subString = originalFilename.substring(originalFilename.indexOf("."));//文件名后缀 //System.out.println("原始文件名:"+originalFilename+";文件后缀名:"+subString); // 将文件对象转换为字节 byte[] fileBytes = multipartFile.getBytes(); // 生成唯一的一个字符串名称(带后缀) String newFilename = UUID.randomUUID().toString()+subString; //System.out.println("唯一文件名(带后缀):"+newFilename); // 开始上传文件 // 拼接保存的路径(相对路径) reletivePaths = folder+newFilename; // 拼接最终保存的路径(绝对对路径) fullPaths = serverAddress+reletivePaths; //把文件关联到远程服务器 WebResource webResource = 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 (UniformInterfaceException e) { // TODO Auto-generated catch block e.printStackTrace(); joson.put("success", 0); joson.put("error", "上传失败"); } catch (ClientHandlerException e) { // TODO Auto-generated catch block e.printStackTrace(); joson.put("success", 0); joson.put("error", "上传失败"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); joson.put("success", 0); joson.put("error", "上传失败"); } return joson.toString(); }
二、存储图片文件服务器:
1、Tomcat的conf目录下的web.xml文件的大概100行添加如下几行(这要是不打开就会报错)
<servlet> <servlet-name>default</servlet-name> <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <!-- 上面是本来就有的 --> <!-- 允许文件读写 --> <init-param> <param-name>readonly</param-name> <param-value>false</param-value> </init-param> <!-- 下面也是本来有的 --> <init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
2、在该Tomcat的/webapps/ROOT目录下创建一个upload目录,用来存放上传的文件
3、启动Tomcat静等着上传服务器那边的请求
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍Android :okhttp+Springmvc文件解析器实现android向服务器上传照片,包括了Android :okhttp+Springmvc文件解析器实现android向服务器上传照片的使用技巧和注意事项,需要的朋友参考一下 A.前言:为了解决安卓端向服务器上传照片的问题 1.获得相册权限,选取照片,取到照片的url 2.使用okhttp访问服务器并向服务器传照片
本文向大家介绍Java上传文件图片到服务器的方法,包括了Java上传文件图片到服务器的方法的使用技巧和注意事项,需要的朋友参考一下 这里我记录一个比较简单方便操作的JAVA上传文件图片到服务器并且保存,具体内容如下 首先是页面html的 我这是提交一个文件和类型 预览图片js 之后就是后台得到 好了现在重点就是看Upload 这个类了 这个类基本是封装好了的,需要 加的东西可以自己取看看然后修
我想上传一张图片,我正在使用http。客户端()用于发出请求, 请求的主体和编码部分应该是什么?
我在尝试将swift中的图像上载到PHP服务器时遇到问题。在php处理文件之前,一切看起来都很好。在那一刻,我得到了错误。 swft代码的相关部分是: php是 最后,我得到的错误是: ******响应数据= 上载失败
本文向大家介绍SpringMVC上传图片与访问,包括了SpringMVC上传图片与访问的使用技巧和注意事项,需要的朋友参考一下 关于springmvc上传图片的方法小编给大家整理了两种方法,具体内容如下所示: 第一种:(放在该项目下的物理地址对应的位置) a. 路径写法: String basePath="/WEB-INF/resources/upload"; String filePathNam
本文向大家介绍Feign实现跨服务文件上传下载,包括了Feign实现跨服务文件上传下载的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Feign实现跨服务的文件上传下载操作,供大家参考,具体内容如下 1、跨服务文件上传,目前feign不支持调用文件上传接口,需要自行配置来满足feign的调用方式 ①.首先需要在pom文件里添加feign依赖 ②.上传的接口 ③.添加配置来满足feig