使用Java下载文件时如何获取原始文件名

优素福

URL像这样Java下载文件时如何获取原始文件名

File file = new File( "test" ) ;
FileUtils.copyURLToFile(URL, file)

因为当我创建文件时,我必须输入一个名称,但在此阶段我还不知道下载文件的原始名称。

宽容度

对我来说,建议的文件名存储在头文件Content-Disposition中:

Content-Disposition: attachment; filename="suggestion.zip"

我正在从nexus下载文件,因此对于不同的服务器/应用程序,它可能存储在不同的标头字段中,但是很容易通过诸如firebug的firebug之类的工具来查找。

以下几行对我来说很好

URL url = new URL(urlString);
// open the connection
URLConnection con = url.openConnection();
// get and verify the header field
String fieldValue = con.getHeaderField("Content-Disposition");
if (fieldValue == null || ! fieldValue.contains("filename=\"")) {
  // no file name there -> throw exception ...
}
// parse the file name from the header field
String filename = fieldValue.substring(fieldValue.indexOf("filename=\"") + 10, fieldValue.length() - 1);
// create file in systems temporary directory
File download = new File(System.getProperty("java.io.tmpdir"), filename);

// open the stream and download
ReadableByteChannel rbc = Channels.newChannel(con.getInputStream());
FileOutputStream fos = new FileOutputStream(download);
try {
  fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
} finally {
  fos.close();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用WebClient下载时获取原始文件名

来自分类Dev

下载文件时如何设置文件名?

来自分类Dev

下载文件,文件名

来自分类Dev

@MultipartForm如何获取原始文件名?

来自分类Dev

如何使用Java Spark下载文件?

来自分类Dev

如何在url中传递长文件名并使用php函数下载文件?

来自分类Dev

如何获取wget下载的文件的文件名

来自分类Dev

如何下载文件名已更改的文件?

来自分类Dev

从NSURLSession下载文件名

来自分类Dev

使用ServiceStack HttpResult下载文件:如何为下载的内容指定文件名?

来自分类Dev

使用FtpWebRequest下载文件时获取文件名而不是内容

来自分类Dev

PHP Laravel如何获取原始pdf文件名并使其可下载

来自分类Dev

在Angular 8中从web.api下载文件时从服务器获取文件名

来自分类Dev

下载文件之前如何从链接中获取文件名?

来自分类Dev

从AngularJS的服务器下载文件时如何更改文件名

来自分类Dev

在Internet Explorer中直接打开下载文件时出现文件名问题

来自分类Dev

是否可以使用bash从服务器获取mp3的下载文件名?

来自分类Dev

在FTP中使用正则表达式获取文件名以下载文件

来自分类Dev

下载文件,文件名

来自分类Dev

如何在C#中下载文件名?

来自分类Dev

下载文件时不知道文件名

来自分类Dev

使用imagemagick转换时如何保留原始文件名

来自分类Dev

下载并使用htmlunit获取原始文件名?

来自分类Dev

从文件获取原始文件名

来自分类Dev

使用PowerShell读取下载文件的文件名

来自分类Dev

使用FtpWebRequest下载文件时获取文件名而不是内容

来自分类Dev

如何找到Clojure的加载文件使用的文件名?

来自分类Dev

vertx Java 下载文件名特殊字符

来自分类Dev

从闪亮的应用程序下载文件时如何设置您选择的文件名

Related 相关文章

  1. 1

    使用WebClient下载时获取原始文件名

  2. 2

    下载文件时如何设置文件名?

  3. 3

    下载文件,文件名

  4. 4

    @MultipartForm如何获取原始文件名?

  5. 5

    如何使用Java Spark下载文件?

  6. 6

    如何在url中传递长文件名并使用php函数下载文件?

  7. 7

    如何获取wget下载的文件的文件名

  8. 8

    如何下载文件名已更改的文件?

  9. 9

    从NSURLSession下载文件名

  10. 10

    使用ServiceStack HttpResult下载文件:如何为下载的内容指定文件名?

  11. 11

    使用FtpWebRequest下载文件时获取文件名而不是内容

  12. 12

    PHP Laravel如何获取原始pdf文件名并使其可下载

  13. 13

    在Angular 8中从web.api下载文件时从服务器获取文件名

  14. 14

    下载文件之前如何从链接中获取文件名?

  15. 15

    从AngularJS的服务器下载文件时如何更改文件名

  16. 16

    在Internet Explorer中直接打开下载文件时出现文件名问题

  17. 17

    是否可以使用bash从服务器获取mp3的下载文件名?

  18. 18

    在FTP中使用正则表达式获取文件名以下载文件

  19. 19

    下载文件,文件名

  20. 20

    如何在C#中下载文件名?

  21. 21

    下载文件时不知道文件名

  22. 22

    使用imagemagick转换时如何保留原始文件名

  23. 23

    下载并使用htmlunit获取原始文件名?

  24. 24

    从文件获取原始文件名

  25. 25

    使用PowerShell读取下载文件的文件名

  26. 26

    使用FtpWebRequest下载文件时获取文件名而不是内容

  27. 27

    如何找到Clojure的加载文件使用的文件名?

  28. 28

    vertx Java 下载文件名特殊字符

  29. 29

    从闪亮的应用程序下载文件时如何设置您选择的文件名

热门标签

归档