zoukankan      html  css  js  c++  java
  • idea 内置tomcat jersey 跨服务器 上传文件报400错误

    报错内容

    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

     
  • 相关阅读:
    Android笔记之AsyncTask
    Android笔记之使用Glide加载网络图片、下载图片
    Android笔记之OnLongClickListener
    Android笔记之ViewModel的使用示例
    分享两款好玩的单机游戏^_^
    Android笔记之Retrofit与RxJava的组合
    15张扑克,让观众心选一张,然后分成3组,每组5张。通过询问观众心选的牌是否在于某组中,最后把选中的牌找出来。
    使用Retrofit发送POST请求提交JSON数据
    Android笔记之引用aar
    不可变类
  • 原文地址:https://www.cnblogs.com/zhian/p/12702773.html
Copyright © 2011-2022 走看看