我正在一个网站上工作,从 php 脚本下载 png 图像。通过发送 header ,我们强制在大多数浏览器中下载图像。
在 iOS 中,图像在浏览器选项卡中打开,使用户远离 UI,并迫使他们手动长按并选择“保存图像”以将下载的图像保存在相机胶卷中。
下载脚本发送如下 header :
<?php
$fileName="image.png";
$filePath="/somepath/".$fileName;
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.$fileName.'"');
header('Content-length: ' . filesize($filePath));
readfile($filePath);
exit;
我想知道是否有任何可以发送的 header 会导致 iOS 上的移动 safari 将图像直接发送到相机胶卷而无需额外的用户操作,或者是否有 JS api 允许将图像推送到相机中滚动。
我意识到这可能是不可能的,因为 ios 应用程序无法像其他平台允许的方式直接访问文件系统,并且已经研究过类似的问题:
- HTTP "Content-Disposition: attachment" and downloading files on iOS web browser
- Can any HTTP headers force iOS to download video (rather than streaming it)
我只是希望可能有一些特定于图像的东西会导致 safari 将图像发送到照片或相机胶卷,而不是在 Safari 中查看它。
最佳答案
除非通过用户交互,Safari 不会访问文件系统,这意味着长按是将其放入相机胶卷的唯一方法。它是沙盒范例的一部分。
没有任何与“下载”目录等效的内容。
关于iOS Safari 自动保存下载的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23668874/