使用SpringMVC实现跨服务器的文件传送

今天在搞文件的跨服务器传送,最后遇到了一个403的问题
话不多说上代码(用的SpringMVC框架)

写入Controller的方法

   /**
     * Springmvc的文件上传的方法,跨服务器上传
     * @param
     * @return
     * @throws Exception
     */
    @RequestMapping("/fileload3")
    public  String fileload3(MultipartFile upload) throws Exception {
        System.out.println("跨服务器文件上传执行了。。。。。。。");
        //定义文件的服务器路径
        String path ="http://localhost:7777/uploads/";


        //先得到文件项目的名字
        String  filename=  upload.getOriginalFilename();
        //把文件名设置成唯一的,uuid通用唯一标识码
        String  uuid= UUID.randomUUID().toString().replace("-","");
        filename=uuid+"_"+filename;

        //创建客户的对象,这个Client类必须是com.sun.jersey.api.client.Client包下的;
        Client client= Client.create();
        //和图片的服务器连接
        WebResource webResource= client.resource(path+ filename);

        //上传文件,通过字节传送

        webResource.put(upload.getBytes());
        System.out.println("写入成功!");


        return "successful";
    }

jsp 的代码

  <h3>SpringMVC的跨服务器文件上传</h3>
                <form action="/anno/fileload3" method="post" enctype="multipart/form-data">
                    选择文件 <input type="file" name="upload" /><br/>
                    <input type="submit" name="上传" /><br/>
</form>

最后通过在本地开两个tomcat服务器进行模拟两个服务器
在第二个工程的web-app里面创建好一个文件叫uploads
然后两个工程都开启服务器
最后我点击文件上传
com.sun.jersey.api.client.UniformInterfaceException:returned a response status of 403,最后通过百度了解到tomcat是默认不允许我们上传文件
1.打开你的tomcat的安装的路径,点击conf,找到web.xml打开,然后搜索DefaultServlet
找到这个位置:

  <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>listings</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

加入

<init-param>
          <param-name>readonly</param-name>
          <param-value>false</param-value>
       </init-param>

然后重启tomcat就ok啦
在这里插入图片描述

我的控制台显示了

在这里插入图片描述

另外如果报错误409 就检查第二个工程的targe项目里面是不是没有文件夹uploads
没有就自己手动一个

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值