iPhoneiPod Touch 文件传输解决方案 – Cocoa Web Resource Project

iPhoneiPod Touch 文件传输解决方案 – Cocoa Web Resource Project,第1张

概述http://www.robinlu.com/blog/archives/344 到目前为止,也就是iPhone SDK 2.2 ,苹果仍然没有为开发者提供一个文件传输解决方案。如果一个应用需要为用户提供往iPhone上传文件的功能,大抵会采用下面几种方法之一: 通过一个链接从网上下载。 提供一个客户端,通过自己的协议上传。 支持FTP传输协议。 在iPhone上启动一个http服务,通过浏览器

http://www.robinlu.com/blog/archives/344

到目前为止,也就是iPhone SDK 2.2 ,苹果仍然没有为开发者提供一个文件传输的解决方案。如果一个应用需要为用户提供往iPhone上传文件的功能,大抵会采用下面几种方法之一:

通过一个链接从网上下载。 提供一个客户端,通过自己的协议上传。 支持FTP传输协议。 在iPhone上启动一个http服务,通过浏览器上传。 比上一个更进一步,在http上支持WebDAV,通过改协议上传。

上面这些方法各有利弊。前两种方式虽然开发比较简单,但用户 *** 作不方便,采用的比较少了。使用FTP在一些系统上还是需要额外的客户端软件,也不算方便。WebDAV的方式现在比较流行,Air Sharing和discover都采用了这种方式。

在做iPhone版iChm时,也需要提供文件上传的功能。我选择了第四个方案,即提供一个http service,通过浏览器上传。这个方案虽然不能象WebDAV那样在一些系统上直接mount到文件系统中,但对于几乎所有带浏览器的系统,它都不需要再安装额外的客户端,实现起来也比WebDAV简单很多。

在http server的选择上,可以porting现有的成熟产品,但是对于这样的应用,apache或者lighttpd等方案都过于庞杂了,实际上只是需要一个很简单的服务。最后找到cocoahttpserver,是由Deusty Designs开源的一个项目,支持异步socket,IPv4和IPv6,http Authentication和TLS加密,小巧玲珑。除了只支持GET方法这一点以外,其他可以说该有的都有,该没有的都没有了。

我对cocoahttpserver做了扩展,首先实现了Multipart POST的支持。在增加文件传输功能的设计上,我将文件当作一个资源(resources),采用了REST的方式:

方法 功能
GET 文件列表,文件下载
POST 上传新文件
DELETE 文件删除

这样的设计,无论从接口的角度,还是从实现的角度,都比较清晰明了。

在iChm 1.0发布后做了些修正,iChm 1.0.1后相对稳定了。现在我将文件传输这部分代码open source出来:
Cocoa Web Resource Project
主要功能如下:

支持通过浏览器向iPhone/iPod touch上传文件,支持文件下载和删除。 内存优化,支持大文件上传。 可定制的web界面。 web界面支持IE,Safari,firefox等主流浏览器。 RESTful API。

希望可以对iPhone开发者有所帮助。

总结

以上是内存溢出为你收集整理的iPhone / iPod Touch 文件传输解决方案 – Cocoa Web Resource Project全部内容,希望文章能够帮你解决iPhone / iPod Touch 文件传输解决方案 – Cocoa Web Resource Project所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1055736.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存