1

嗨,感谢您的任何建议,

我已经完成了我的作业,并试图在 SO 和周围找到答案,但到目前为止我一直无法找到解决方案。

我正在尝试构建某种 FileManager 以允许用户在网站上上传文件(任何网站,例如在 yahoo 邮件中添加附件到邮件......)

因此,我的应用程序注册了一个过滤器,以便当浏览器请求上传文件时,应用程序打开并将文件提供给请求者(Web 浏览器)。

我的问题是: 有没有办法让我检索文件上传到的网站的网址?

4

4 回答 4

1

您是否看过这个问题:Android 文件选择器?它有很好的示例代码以及指向 GitHub 项目 ( aFileChooser ) 的链接。

于 2013-10-01T05:00:02.180 回答
1

我不确定我目前是否理解你的问题。我的回答与假设有关:您希望拥有已上传文件的直接下载 url,并且您希望在将来的某个时候使用此 url 来下载该文件...

恐怕真的没有办法得到这样的信息。

获取上传文件的 url 的方式有很多障碍:

  • 在此扫描中没有发送任何系统广播/事件
  • 即使上传过程是由您自己的应用程序管理和启动的, WebView您上传的网站也不一定会为您提供上传文件的 url 信息。我确信像雅虎这样的公司不会为您提供这个网址。
  • 如果这还不够 -根本就不一定有这样的 url! 事实是,您上传到的服务器并不需要对上传的文件做任何事情,或者只是不让他通过 url 公开访问。

出于我提到的原因,像你一样开发应用程序只能通过提供自己的 API 用于上传文件的服务器来完成,并将 URL 作为响应返回给你。
当然,每台服务器都有自己的 API(如果有的话),您应该使用自己的语言与您希望支持的每台服务器交谈。如果您想支持大多数大型网站,这是不可能完成的任务...

于 2013-09-26T13:38:11.770 回答
1

如果它们在网站上没有安全层,则应用程序嗅探数据可能是一种解决方案。您可能还需要处理像 gzip 这样的内容编码。

您需要过滤结果。这很容易做到:您只需要查看OSI 模型中的应用程序级别。然后,如果您知道相关站点的 IP 地址或主机名,则可以应用第二个过滤器。

如果您知道请求方法,甚至还有一个过滤器。但大多数时间都是获取或发布。

于 2013-09-28T21:08:48.063 回答
1

关于如何获取上传文件的 URL,我遇到了类似的问题。答案很简单,就在您的 Android 代码中。

要将文件上传到某个地方,您需要知道服务器/网站的 URL。

因此,假设您正在将文件上传到

 www.yoursite.com/appdatafolder/

要将文件上传到给定地址,您必须有一个php script file sitting there,它将与您的 android 代码通信以上传数据。

让我们考虑地址是:

 www.yoursite.com/appdatafolder/upload.php

现在这取决于您的代码是如何编写 php 脚本的,在我的情况下,我还将文件名发送到upload.php文件,如果需要,您可以忽略它,或者您的脚本遵循其他算法。

假设您要上传,因此上传文件importantfile.txt的网址变为

 www.yoursite.com/appdatafolder/upload.php?filename="importantfile.txt"

您需要提供给用户的地址to download the file变为:

 www.yoursite.com/appdatafolder/importantfile.txt

现在您可以做的是将此地址保存在手机的本地数据库中,并在用户想要下载文件时使用它。

如果您害怕保护可以访问/下载的文件

 www.yoursite.com/appdatafolder/

你可以使用htaccess。还有许多其他安全机制可以保护服务器上的数据免受黑客攻击。htaccess 是最简单的例子。

因此,这是解决您的问题的最简单且无忧的方法。

如果你愿意,我可以提供我使用的 php 脚本。

希望这可以帮助。

于 2013-09-27T07:46:14.117 回答