单击链接时,我试图强制下载pdf文件。对于某些链接,它有效。但其他 pdf 链接,它只是在浏览器中显示 pdf。如果您能提供帮助,我将不胜感激!谢谢
问问题
77 次
1 回答
0
第一种方式
它是从 URL 管理的。我认为。你可以检查这个链接。因为该下载 URL 包含一些基于该浏览器执行操作的标头。
在浏览器中显示文件:
Content-Type: application/pdf
Content-Disposition: inline; filename="filename.pdf"
在浏览器中下载文件
Content-Type: application/pdf Content-Disposition: attachment;
filename="filename.pdf"
所以基本上你需要在 URL 中管理它。
第二种方式 ,您也可以直接从 URL 下载文件
网络下载选项
import 'dart:html' as html;
void downloadFile(String url) {
html.AnchorElement anchorElement = new html.AnchorElement(href: url);
anchorElement.download = url;
anchorElement.click();
}
如果您想在没有外部库的情况下从 URL 下载和保存文件。移动平台
Future<String> downloadFile(String url, String fileName, String dir) async {
HttpClient httpClient = new HttpClient();
File file;
String filePath = '';
String myUrl = '';
try {
myUrl = url+'/'+fileName;
var request = await httpClient.getUrl(Uri.parse(myUrl));
var response = await request.close();
if(response.statusCode == 200) {
var bytes = await consolidateHttpClientResponseBytes(response);
filePath = '$dir/$fileName';
file = File(filePath);
await file.writeAsBytes(bytes);
} else
filePath = 'Error code:'+response.statusCode.toString();
} catch(ex){
filePath = 'Can not fetch url';
}
return filePath;
}
于 2022-01-23T07:28:20.697 回答