一.错误如下
在使用Jersey进行图片跨服务上传时遇到了如下问题:
二.代码如下
1.pom.xml
<dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-core</artifactId> <version>1.18.1</version> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-client</artifactId> <version>1.18.1</version> </dependency>
2.index.jsp:提交页面
1 <h3>文件上传之跨服器上传</h3> 2 <form action="file/fileUpload3" enctype="multipart/form-data" method="post"> 3 选择文件:<input type="file" name="upload"/><br/> 4 <input type="submit" value="上传"/> 5 </form>
3.springmvc.xml页面
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="104857600" />
<property name="maxInMemorySize" value="4096" />
<property name="defaultEncoding" value="UTF-8"></property>
</bean>
4.控制器代码
@RequestMapping("/fileUpload3") public String fileUpload3(MultipartFile upload) throws Exception { System.out.println("文件跨服器上传"); //定义上传文件服务器路径 String path = "http://localhost:9090/uploads/"; //说明上传文件项 //获取上传文件的名称 String name = upload.getOriginalFilename(); //把文件名设置为唯一值,uuid String uuid = UUID.randomUUID().toString().replace("_", ""); name = uuid + "_" + name; //完成上传文件,跨服器上传 //创建客户端对象 Client client = Client.create(); //和图片服务器进行连接 WebResource webResource = client.resource(path + name); //文件上传 webResource.put(upload.getBytes()); return "success"; }
三.解决方案
1.找到tomcat的目录下找到/conf/web.xml文件下找到如图页面
在里边添加如下代码:
<init-param>
<param-name>readonly</param-name>
<param-value>false</param-value>
</init-param>
2.如果出现409或403查看上传服务器目录下是否创建对应目录。
我的项目/target/文件目录存不存在,有时需要手动添加