【问题标题】:iOS Safari automatically save downloaded imageiOS Safari 自动保存下载的图片
【发布时间】: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 应用程序不能像其他平台允许的那样直接访问文件系统,并且已经研究过类似的问题:

我只是希望某些特定于图像的东西会导致 safari 将图像发送到照片或相机胶卷,而不是在 Safari 中查看它。

【问题讨论】:

  • iOS 不能这样工作,因为 iOS 在修改个人内容之前会尊重用户的同意。
  • 约定优于便利,听起来他们懒得实施。
  • @Kingpin2k 这不太可能没有实现,因为 iOS 团队感到“懒惰”。他们故意选择了这种行为。
  • 他们故意选择不实施它,因为实施它比不实施它需要更多的时间......对我来说听起来很懒惰。

标签: ios safari mobile-safari


【解决方案1】:

Safari 不会访问文件系统,除非通过用户交互,这意味着长按是进入相机胶卷的唯一方法。它是沙盒范例的一部分。

没有任何等效的“下载”目录。

【讨论】:

  • 至少在 iOS8 上,我找不到让长按也能进入相机胶卷的方法。
  • 这真是个无赖。至少,iOS 可以显示一个对话框“保存文件..?” [是] [否] 这也需要用户交互,从而满足沙盒范式。 ...我讨厌苹果... :-(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-14
  • 1970-01-01
  • 2012-05-15
  • 1970-01-01
  • 2019-04-25
  • 1970-01-01
相关资源
最近更新 更多