NutzCN Logo
问答 文件上传转发到另外一个服务器是否存在问题?
发布于 2155天前 作者 qq_64f81159 1733 次浏览 复制 上一个帖子 下一个帖子
标签:

后台代码为

                       File fromFile = tmpFile.getFile();
			String tmpName = tmpFile.getSubmittedFileName();
			String fileName = "";
			
			if(redirectReq){
				fileName = bgUpload(fromFile);
                        }

这个bgUpload的代码是这样的

private String bgUpload(File file){
		Request req = Request.create(uploadUrl, METHOD.POST);
		Map<String, Object> params = req.getParams();
	    params.put("file", file);
	    FilePostSender sender = new FilePostSender(req);
	    Response resp = sender.send();
	    return resp.getContent();
	}

至于为什么要这样做是因为集群上传要到同一个地方去, 这个如果是图片小文件就没有问题
大文件会报Not POST or PUT ,Wrong HTTP method!-->GET

5 回复

多大的文件? FilePostSender 总会发POST请求的呀, 不应该出现GET的

开始是用的4g后面用了400M也是报错,关键他们想要传超过2G的,内网环境。不能用云存储。 转发到的位置是springboot,springboot代码是这样的

    @RequestMapping(value="/upload", method = RequestMethod.POST)
    public @ResponseBody String upload(@RequestParam("file") MultipartFile file,
                                          HttpServletRequest request) throws IOException {
        String contentType = file.getContentType();
        String fileName = file.getOriginalFilename();
        fileName = FileUtil.generateFileName(fileName);
        System.out.println(fileName);
        File destFile = new File(uploadPath + fileName);

        if (!destFile.exists()) {
            destFile.getParentFile().mkdirs();
            destFile.createNewFile();
        }
        file.transferTo(destFile); //保存文件
        return fileName;
    }

已经配置了最大可以上传大小的配置文件

spring.http.multipart.maxFileSize=8192Mb
spring.http.multipart.maxRequestSize=81920Mb

那就没到转发的地方,

"Not POST or PUT ,Wrong HTTP method!-->GET" 这是nutz的UploadAdaptor特有的信息

不是啊 小文件比如1 2M的图片这个时候是可以上传成功的 大了就不行,我不知道是不是不能这样转发的原因,因为文件比较大所以不能一边读一遍转 tmpFile不是全的。,因为我试了下不转发直接用springboot上传能否成功,结果是可以成功的,但是我还是想进行转发一次 。

@AdaptBy(type = UploadAdaptor.class, args = { "${app.root}/WEB-INF/tmp", "8192", "utf-8" })
	@At("/file")
	public Object uploadFile(@Param("file") TempFile tmpFile, HttpServletRequest req) {
		return commonUpload(tmpFile);
	}

表单上传的? 还是用了第三方js库? nutz入口方法的日志发一下呗

添加回复
请先登陆
回到顶部