2010-01-29 80 views
5

我有一个基于drupal的网站,用户可以登录并查看私人论坛。这是我想让我的Android测试版测试人员下载测试版.apk文件的地方。我在基于Android 1.6的myTouch 3G上进行了彻底测试,并且能够登录并下载附加到论坛帖子的文件。无法通过web浏览器从drupal站点下载.apk

现在来了一个有趣的部分:我的测试人员在Droids和Nexus Ones(Android 2.0.1和2.1)上抱怨说他们的下载失败了。由于我没有2.0手机,我在2.0模拟器中试过了,并且看上去没有用。下载显示一秒或两秒的不确定进度,然后显示“下载不成功”。

根据我在日志中看到的内容,显然服务器正在从2.0浏览器返回404下载请求。我可以下载到我的桌​​面和1.6手机没有问题。我能想到服务器将返回404请求的唯一原因是由于某种原因,凭证或cookie未被下载过程传递。 logcat中显示:HTTP错误404下载X

一些背景资料: 我说这样的MIME类型来我的.htaccess: 将AddType应用/ vnd.android.package归档APK

我检查服务器日志并查看下列失败的下载: xx.xx.xx.224 - - [28/Jan/2010:20:39:00 -0500]“GET /system/files/grandmajong-beta090.apk HTTP/1.1”404 - “http://trickybits.com/forums/beta-testing/grandma-jong/latest-version-090-b1”“Mozilla/5.0(Linux; U; Android 1.6; en-us; sdk Build/Donut)AppleWebKit/528.5 +(KHTML,如Gecko)版本/ 3.1.2 Mobile Safari/525.20.1”

回答

0

dr的默认存储位置升级文件是/ sites/default/files。如果你通过Drupal上传文件(作为节点或其他),它将在这里。您还应该查看文件/sites/settings.php或文件上传设置(http:/// admin/settings/file-system)以查看文件的存储位置。

这不是一个MIME类型的问题,所以删除apk文件的条目,除非你想让服务器尝试读取它们。

+0

谢谢雪橇。是的,该文件绝对存在,我可以通过Firefox在桌面上下载它没有问题。这个问题似乎在我的网站和某些版本的Android浏览器及其下载功能之间。 – Gyuri 2010-02-05 17:08:47

0

作为2.0+手机(Droid X)的拥有者,我发现我尝试下载自己的APK时遇到了同样的问题。我解决了这个问题:奇怪的是,无论出于何种原因,下载Astro文件管理器使我能够这么做。

1

这听起来像是它与我尝试从我自己的Web服务器提供APK时遇到的一个长期存在的问题有关。这不是MIME问题,它不是文件许可,也没有路径故事。就我可以告诉Android浏览器中的错误而言。我发现使用Apache时,如果我添加一个限制文件/目录的.htaccess文件,即从浏览器下载时希望它提示输入用户名/密码,它会因您描述的错误而失败。删除.htaccess,一切都很好。当你有一个公共网站时,你想要坚持你的安全测试APK,这并不好。您的网站是drupal - 我会检查是否有这样的限制,或者确实如果它不是限制本身,而是存在.htaccess文件,因为确切原因尚不清楚。

顺便说一句,一个优雅的解决方案是使用Dropbox。您可以让用户将其安装到手机上,而当您将APK放到手机上时,他们不仅可以立即得到通知,还可以单击状态栏中的链接并安装应用程序,即不需要MIME或服务器完全需要工作。

+0

Dropbox是一个好主意,我会尝试一下。 – Gyuri 2011-08-01 15:10:34

+0

Dropbox非常棒,至少它是一个可行的解决方案。但是,1)我喜欢将我的所有文件保存在一个地方,2)当我不得不派人到第三方网站下载APK时,这让我看起来很糟糕。 – Jacksonkr 2013-07-16 13:36:39

0

我知道这是一个老问题,但我现在有同样的问题。

我发现的唯一解决方法是要求用户从非内置导航器中下载apk,这非常容易混淆和令人讨厌(Opera实际上工作正常)。

如果有人找到了在浏览器中构建的解决方案,那么将会非常感激,如果发布! :)


另外我注意到:
我在一个局域网内工作,其中服务器是192.168.1.15。我已经在本地计算机的“主机”上解析了域名到服务器地址(如果没有,则域名解析为路由器)。在Android中,我还没有解析域名,所以当内部浏览器尝试导航到域名时,不是解析到服务器,而是根据预期解析到路由器。令人惊讶的是,Opera解决了服务器问题,就像是有代理或类似的东西一样。至少它的行为就像流量来自局域网之外。

也许这是让Opera下载文件的原因。

对不起,如果我的英文不够好,可以更清楚地解释,但希望它是可以理解的。