【发布时间】:2013-01-10 13:28:43
【问题描述】:
这真的发生了。我在 PHP 中进行了测试以确认这一点。
我创建了一个 test.php 文件并放:
<?php
error_log('Downloading...');
header('Content-type: application/force-download');
header('Content-Disposition: attachment; filename="test.txt"');
echo 'test android download';
?>
所以,当我通过任何 Android 移动浏览器打开 www.myurl/test.php 时,在 error_log.log 中,我会出现两次“正在下载...”。
当我在任何其他移动操作系统(Windows、IOS 等)中打开相同的 URL 时,我只会在 error_log.log 文件中看到一次“正在下载...”。
有谁知道发生了什么以及如何避免这种情况??
这对我来说是个大问题,因为当有人下载文件时我会执行用户收费。现在从 Android 手机下载 1 个文件需要 2 次费用。
【问题讨论】:
-
"有谁知道发生了什么以及如何避免这种情况?" -- 如果我不得不猜测,Android 会发出一个 HTTP HEAD 请求,然后是 HTTP GET/POST/whatever 请求。
-
.. 所以如果用户用这个 url 刷新它的浏览器,他将被收取两次费用??? (小心这种解决方案)
-
@CommonsWare 我不确定我理解你吗?文件下载成功。
-
“下载文件成功”——这让我很吃惊,因为
Content-Disposition: attachment从来没有工作过,但如果是现在,这是一个可喜的改进。您当然应该在 Android 2.x 上进行测试,看看您的方法是否有效。 “我不确定我是否理解你?” -- 如果你不知道什么是 HTTP HEAD 请求,那我就无能为力了。 -
标签: android download billing mobile-browser