idea 内置tomcat jersey 跨服务器 上传文件报400错误
2024-10-19 13:35:55
报错内容
com.sun.jersey.api.client.UniformInterfaceException: PUT http://.jpg returned a response status of 400 Bad Request
因为跨服务器上传文件,文件名中里面含有中文名称,所以报错,解决:
让文件服务器支持utf-8编码或者将文件名变成英文。(最好的就是根据时间加随机数 或者是UUID来命名)
简单版的jsersey上传
@RequestMapping("/fileupload3")
public String fileuoload3(MultipartFile upload) throws Exception {
System.out.println("跨服务器文件上传..."); // 定义上传文件服务器路径
//String path = "http://localhost:9090/uploads/";
String path="http://localhost:9082/fileuploadserver_war/uploads/"; // 说明上传文件项
// 获取上传文件的名称
String filename = upload.getOriginalFilename();
// 把文件的名称设置唯一值,uuid
String uuid = UUID.randomUUID().toString().replace("-", "");
filename = uuid+"_"+filename; // 创建客户端的对象
Client client = Client.create(); // 和图片服务器进行连接
WebResource webResource = client.resource(path + filename); // 上传文件
webResource.put(upload.getBytes()); return "success";
}
前端html代码
<h3>跨服务器文件上传</h3> <form action="/user/fileupload3" method="post" enctype="multipart/form-data">
选择文件:<input type="file" name="upload" /><br/>
<input type="submit" value="上传" />
</form>
引用的包地址
<!--文件上传-->
<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.2</version>
</dependency> <!--跨服务器文件上传的插件-->
<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>
idea 内置tomcat jersey 上传文件报403错误的话我看另外一篇文章《tomcat jersey 上传文件报403错误》
来源:dillqq ,另外关于如果有人要参考jersey上传写法 看JustCode
最新文章
- postman使用
- android studio导入jar的两种方式
- 51nod 1040最大公约数和(欧拉函数)
- 20169212《Linux内核原理与分析》第三周作业
- WCF vs ASMX WebService
- Android UI基础之五大布局
- atan atan2的区别!
- UILabel 自适应大小
- initWithFrame和initWithCoder区别
- Fancy
- AIX6.1/11.2.0.3在有关数据库SWAP一个BUG
- server正式的环境性能测试nginx-php 指着寻求突破的表现
- OCP-1Z0-051-题目解析-第13题
- linux中普通的文件查看操作(cat、more、less、head、tail)
- Vue(day3)
- input(type=";checkbox";|type=";radio";)+jquery使用
- 个人对stm32ADC编程关键点的理解
- 第20月第28天 tensorflow
- 【maven】之打包不带版本号的问题
- linux 端口占用情况