跨服务器文件上传案例的403,404错误解决办法

  • Post author:
  • Post category:其他


应用服务器控制器的代码如下

@Controller
@RequestMapping("/user")
public class FileUploadController {

    /**
    * @Author: Tian
    * @Description: 实现图片的跨服务器上传
    * @Params:
    * @Return:
     */
    @RequestMapping("/fileUpload3")
    public String fileUpload3(MultipartFile upload) throws Exception {
        System.out.println("跨服务器文件上传...");
        // 定义上传文件服务器项目路径
        String path = "http://localhost:9090/uploads/";
        // 获取上传文件的名称
        String filename = upload.getOriginalFilename();
        // 把文件的名称设置唯一值,uuid
        String uuid = UUID.randomUUID().toString().replace("-", "");
        filename = uuid+"_"+filename;
        //创建客户端对象
        Client client = Client.create();
        // 和图片服务器进行连接
        WebResource resource = client.resource(path + filename);
        // 上传文件
        resource.put(upload.getBytes());

        return "success";

    }
}



点击网页文件上传按钮,报错500

	我们要知道这不是我们代码的问题,是服务器存在问题,按照网页提示加以解决.



404错误

在项目部署后再target目录下**没有uploads文件夹**,添加上就可以了.



403错误

我的出错原因是没有将 tomcat软件的配置文件里的参数进行修改,**需要找到Tomcat软件的目录,依次打开/conf/web.xml文件**,修改一下代码,添加一个服务器初始化参数
 <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>
		 <init-param>
            <param-name>readonly</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

当然最后不要忘了重启服务器.
希望能帮到你.



版权声明:本文为yzxmf111原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。