利用vdisk提供的API接口制作网络硬盘空间,大大节省了自己的硬盘空间,还能一定程度上放置盗链,这应该是众多小站的选择。本文仅提供设计步骤,具体代码不贴上,如需要可以联系屋主索取哦。废话不多说,开始计步骤
申请账号
到vdisk申请一个帐号,并开通API接口服务。
如何申请帐号,这里就不罗嗦了,只要是会打字的童鞋都能申请。目前所有申请到的帐号,默认空间大小就是2G空间,我感觉2G空间已经够用了。上传大文件的请绕道,不在本文讨论范围之内。然后申请开通API接口服务,获得相应的授权码值等等,把这些值记下。
设计表结构
这里重点说明一下,虽然通过API接口你也能获取到文件列表详细信息。但不推荐通过API接口获取文件列表,因为不方便不说,还一个字:慢。用户体验非常不好,所以本篇文章采取的架构是本地存储文件列表模式。就是用户上传或者删除后,就在本地数据库上进行增加或删除。用户打开网页后,加载的是从本地数据库读取的文件列表。
表需要怎么设计呢?通常把关键的文件ID记录即可(即上传文件后vdisk会返回一个唯一的文件ID,有了这个ID你就可以对文件进行相应操作),其它拓展的你想怎么加就怎么加,比如上传时间,文件大小,文件名等等,通常也就这几样。
这里提示一点,上传文件后接口会立即返回一个文件的URL值,通常不要把这个值当作下载地址存入数据库,因为这个值是会发生变化的。所以,每有一次请求下载,都应该请求一次接口获取下载地址。
读API文档
既然是API操作,就必须读读API文档,在官网可以找到API文档。不一定要全部通读,你只需要把用到的那一块给记下。如:请求地址,参数,GET或者POST,返回值有什么即可。通常的登录接口,上传接口,删除接口以及下载接口你应该都要看看。登录接口是基于所有操作的前提,即只有登录后才能进行其它操作。
下载SWFUpload
这个组件本站有专门的博文介绍过,这里就不再重复了。下载传到空间后,这里有几点需要更改的地方,打开index.php把upload_url
值改成
把form表单的action
值也改成
即可。其它都不需要做改动,当然如果你需要添加关键字管理等等可以在回调函数里根据文件名来判断也可以。
编写PHP代码
PHP要模拟HTTP去请求接口获得返回信息操作类似于Ajax异步请求,这里请千万别使用file_get_contents
函数,首先这个函数不稳定,容易出错,另外不能自定义header头,也就是不能发送POST参数。这里推荐使用curl组件访问API接口进行操作。当用户上传或者删除时,也要同时更新本地数据库进行增删改即可。
如果用户有下载操作时,只需要把文件ID通过接口获得下载地址,然后直接用PHP中header函数到文件URL地址即可实现下载。