相关疑难解决方法(0)

使用Java上传文件(带进度条)

我对Java 非常陌生,并且大部分时间都在教我自己,所以我开始构建一个applet.我想创建一个可以从本地磁盘中选择文件并将其作为multipart/form-data POST请求上传但有进度条的文件.显然,用户必须授予Java applet访问硬盘驱动器的权限.现在我已经完成了第一部分工作:用户可以使用JFileChooser对象选择一个文件,方便地返回一个File对象.但我想知道接下来会发生什么.我知道这File.length()将给我文件的总大小(以字节为单位),但是如何将所选内容发送File到网络,以及如何监控已发送的字节数?提前致谢.

java upload file-io progress-bar

30
推荐指数
4
解决办法
6万
查看次数

Spring for Android,文件上传进度

我正在使用Spring for Android作为Android应用程序中远程调用的REST模板.

目前正致力于将图像上传到服务器.

我想出了类似的东西:

public Picture uploadPicture(String accessToken, String fileToUpload) throws RestClientException {
    RestTemplate rest = new RestTemplate();
    FormHttpMessageConverter formConverter = new FormHttpMessageConverter();
    formConverter.setCharset(Charset.forName("UTF8"));
    CustomGsonHttpMessageConverter jsonConverter = new CustomGsonHttpMessageConverter();
    rest.getMessageConverters().add(formConverter);
    rest.getMessageConverters().add(jsonConverter);
    String uploadUri = AppConfig.ROOT_URL.concat(AppConfig.ADD_PHOTO);

    HashMap<String, Object> urlVariables = new HashMap<String, Object>();
    urlVariables.put("accessToken", accessToken);

    HttpHeaders httpHeaders = new HttpHeaders();
    httpHeaders.setAccept(Collections.singletonList(MediaType.parseMediaType("application/json")));

    MultiValueMap<String, Object> parts = new LinkedMultiValueMap<String, Object>();
    parts.add("picture", new FileSystemResource(fileToUpload));
    Picture response = rest.postForObject(uploadUri, parts, Picture.class, urlVariables);
    return response;
}
Run Code Online (Sandbox Code Playgroud)

哪个工作正常,但现在我想从中获取进度更新.

有谁知道它是否可能以及如何做到这一点?

提前致谢 :)

rest spring android file-upload

7
推荐指数
1
解决办法
3103
查看次数

使用RestTemplate.postForLocation的文件上载进度条

我有一个Java桌面客户端应用程序,可以将文件上传到REST服务.

使用Spring RestTemplate类处理对REST服务的所有调用.

我正在寻求实现进度条并取消功能,因为上传的文件可能非常大.

我一直在寻找一种在网上实现这一点的方法,但没有运气.

我尝试实现自己的ResourceHttpMessageConverter并替换writeInternal()方法,但是在实际发布请求之前,似乎在某种缓冲操作期间调用了此方法(因此在发送之前一次性读取流).

我甚至尝试重写CommonsClientHttpRequestFactory.createRequest()方法并使用特殊的writeRequest()方法实现我自己的RequestEntity类,但是会出现同样的问题(在实际发送帖子之前都会读取流).

我在找错了地方吗?有没有人做过类似的事情.

我在网上看到的很多关于实现进度条的内容都谈到了关闭上传,然后使用单独的AJAX请求来轮询Web服务器的进度,这似乎是一种奇怪的方式.

任何帮助或提示非常感谢.

upload spring multipart resttemplate progress-bar

5
推荐指数
1
解决办法
1555
查看次数