【发布时间】:2014-05-15 12:32:17
【问题描述】:
我正在一个从 php 脚本下载 png 图像的网站上工作。通过发送标头,我们强制图像在大多数浏览器中下载。
在 iOS 中,图像在浏览器选项卡中打开,使用户远离 UI,并迫使他们手动长按并选择“保存图像”以将下载的图像保存在他们的相机胶卷中。
下载脚本发送如下标头:
<?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;
我想知道是否有任何我可以发送的标头会导致 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 中查看它。
【问题讨论】:
-
iOS 不能这样工作,因为 iOS 在修改个人内容之前会尊重用户的同意。
-
约定优于便利,听起来他们懒得实施。
-
@Kingpin2k 这不太可能没有实现,因为 iOS 团队感到“懒惰”。他们故意选择了这种行为。
-
他们故意选择不实施它,因为实施它比不实施它需要更多的时间......对我来说听起来很懒惰。
标签: ios safari mobile-safari