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

     
  • 相关阅读:
    Spring MVC 入门示例讲解
    使用Word2013,发布博文到博客园
    走过2103,迈向2014
    C#中的字符串拼接@,$
    ORA-22922:nonexistent LOB value问题及listagg()函数
    证明一个数是不是存在于该数组中
    论java中System.arrayCopy()与Arrays.copyOf()的区别
    JSP中获取各种路径的方法
    JavaScript中变量声明有var和没var的区别
    JavaScript:理解事件循环
  • 原文地址:https://www.cnblogs.com/zhian/p/12702773.html
Copyright © 2011-2022 走看看