文件直接上传到 APP

2017-08-28 19:04:53 +08:00
 chemfinder
我开发了一个 Android 端的 app

现在有一个文本文件,在电脑桌面上,需要上传到我这个 app 上

有什么办法直接从电脑把这个文本文件直接上传到我的 APP 里面呢?

(不通过手机 qq、 微信、 邮箱等等)

而是直接从电脑到我的 app 减少中间环节!
1973 次点击
所在节点    问与答
18 条回复
momocraft
2017-08-28 19:21:32 +08:00
app 内做一个带上传的 http server,从电脑访问
lydasia
2017-08-28 19:23:40 +08:00
app 开 http 服务器,显示 ip 地址(和端口号),同局域网桌面端用浏览器上传,别的大概就比较复杂了吧。
chemfinder
2017-08-28 19:30:56 +08:00
@momocraft 电脑端不想装什么东西 就是任意一台电脑 这样也是可以的吗?不太懂技术 我是有这个需求 在找解决方案。。
momocraft
2017-08-28 19:32:10 +08:00
@chemfinder 电脑需要有浏览器
chemfinder
2017-08-28 19:35:56 +08:00
@lydasia
我异想天开的想法是:我可以要求客户统一将该文件命名为“需要上传的资料.txt ”,然后在我的 app 上传页面提供一个扫描器,用户手持手机扫描桌面,发现该名字的文件,即开始进行上传动作。但是,隐隐约约感觉这需要电脑授权吧?否则是不是有点移形换影的感觉?脑洞大开了。。。
chemfinder
2017-08-28 19:37:58 +08:00
电脑需要有浏览器 你们需要把文件拖动到浏览器里面吗?如果是这样,那我还不如开发个 web 页面上传呢。但是这样就增加了中间环节啊~
chemfinder
2017-08-28 19:38:28 +08:00
电脑需要有浏览器 那么嗨需要把文件拖动到浏览器里面吗?如果是这样,那我还不如开发个 web 页面上传呢。但是这样就增加了中间环节啊~
chinvo
2017-08-28 20:00:26 +08:00
@chemfinder #6 大家就是在说用 web 页面上传啊
ipconfiger
2017-08-28 20:04:59 +08:00
App 上实现一个扫二维码功能, 你先上传文件到网盘, 生成分享连接, 再找个二维码服务把连接生成二维码, App 一扫得到连接, 就可以下载了. 那么, 如果你要一站式的, 就把上述功能集成起来就行了
ipconfiger
2017-08-28 20:05:41 +08:00
所以苹果全家桶的好处就是, Airdrop 一发就好了
jugelizi
2017-08-28 20:06:44 +08:00
参见 qq 阅读的 wifi 传书
lookas2001
2017-08-28 20:43:13 +08:00
首先我把你的需求详细化成在同一个局域网传输文件,同时不需要安装过多软件,并且要方便。
这么分析你的需求是因为:
第一点是因为看你的需求好像不要邮箱这种通过第三方服务(器)来进行。
第二点和第三点是你不想让用户安装 qq 和微信(增加
了操作成本)。
那么先从系统自带的功能开始。
文件复制?
scp
我觉得用户不会打开一个黑漆漆的窗口然后传文件,此方案 pass 掉。
smb (文件共享)
系统自带,但是 Android app 上运行一个 smb server 且不说系统让不让你这么干,首先开发难度就上去了。不是特别推荐,但是如果你不喜欢下一个方案,这个方案可以当一个备选。
web 浏览器上传
web 浏览器一般系统都有。那么这样问题就简单了。咱你的 Android app 里开一个 http server (绝对比 smb server 好开)然后运行一个非常简单的 web service,告诉用户手机电脑要在一个局域网内,应该在浏览器打哪些网址,让用户打开 web 后然后上传文件。
据我所知一些应用比如百度云的免流量安装的原理一般就是这样的。
chemfinder
2017-08-28 23:40:53 +08:00
@chinvo
@ipconfiger
@jugelizi
@lookas2001
@lydasia
@momocraft

以上方案是不是都要求那台 PC 得有无线网卡?或者蓝牙呢?
如果是这样,这是没有办法保证的啊~
chinvo
2017-08-29 00:00:47 +08:00
@chemfinder #13 不是,是你的 app 提供一个 web 页面,只要和电脑在一个网络里面,电脑能访问到就可以
ipconfiger
2017-08-29 00:24:15 +08:00
@chemfinder 如果 PC 不联网的话, 有两个办法
1: 通过视频
把文件分割成多块, 每一块生成一个二维码, 按顺序下来, 再将数据拼接起来生成文件
缺点就是, 慢, 需要手动扫, 你要是手快的话, 一秒也差不多只能几百个 byte

2: 通过音频
把文件编码成音频用音箱播放, 手机解码后还原成文件
缺点是, 慢, 每秒差不多也就几百个 byte, 还会存在一定误码率, 所以差不多每几个 byte 就需要一个校验位, 还需要一个序列位用来解决重发的问题
momocraft
2017-08-29 01:06:21 +08:00
換個思路: 如果不要任何保證就能用手機拿到附近 pc 的文件, 連網絡都不需要, 你猜這技術能賣多少錢
lfk0000
2017-08-29 08:47:52 +08:00
一种在实现物理隔离的计算机之间交换信息的方法
CN 103729323 A
摘要
本发明提出了一种在实现物理隔离的计算机之间交换信息的方法,通过将待传输文件分割为多个原始数据块,对原始数据块进行编码,生成相应的二维码图像,通过读取二维码图像并解码,实现信息交换。按照本发明在物理隔离的两台计算机间进行信息交换,所传递的信息对用户是完全透明的,并且无需使用任何光盘进行传递。由于二维码本身包含了纠错机制,传输数据时很少出现校验错误。单次能够传输的最大数据量与所使用的二维码编码方式、显示器、显卡和数码相机的分辨率密切相关,每秒能够进行的传输次数与所采用的相机摄像速率有关。

http://www.google.com.pg/patents/CN103729323A?cl=zh
lfk0000
2017-08-29 08:49:42 +08:00
按照本发明在物理隔离的两台计算机间进行信息交换,所传递的信息对用户是完全透明的,并且无需使用任何光盘进行传递。由于二维码本身包含了纠错机制,传输数据时很少出现校验错误。单次能够传输的最大数据量与所使用的二维码编码方式、显示器、显卡和数码相机的分辨率密切相关,每秒能够进行的传输次数与所采用的相机摄像速率有关。经过测算,当计算机显示分辨率设为 1920*1080、数码相机分辨率为 3648*2736、采用 QR 编码时,每幅图像最大可传输 177180 字节数据。相机采集速率为 60 帧 /秒时,每秒则可以传输 30 次。

177kB*30=5.3MB ,这速率还可以。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/386439

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX