我正在使用 DownloadManager 从 url 下载视频文件。
问题是如果我使用默认文件夹下载文件,我在图库中看不到视频。
此外,如果我尝试使用此方法:
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, 'filename');
我在下载之前需要知道文件名,在这种情况下,我不知道。
而且,我在 url 中没有文件名。
如何从标题中获取文件名并将名称传递给方法 setDestinationInExternalPublicDir ? 其他选择?
最佳答案
如果有人想要执行 HEAD 请求以获取文件名:
class GetFileName extends AsyncTask<String, Integer, String>
{
protected String doInBackground(String... urls)
{
URL url;
String filename = null;
try {
url = new URL(urls[0]);
String cookie = CookieManager.getInstance().getCookie(urls[0]);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestProperty("Cookie", cookie);
con.setRequestMethod("HEAD");
con.setInstanceFollowRedirects(false);
con.connect();
String content = con.getHeaderField("Content-Disposition");
String contentSplit[] = content.split("filename=");
filename = contentSplit[1].replace("filename=", "").replace("\"", "").trim();
} catch (MalformedURLException e1) {
e1.printStackTrace();
} catch (IOException e) {
}
return filename;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected void onPostExecute(String result) {
}
}
关于android - 在 Android 中使用 DownloadManager 从标题中获取文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23069965/