官方提供的 php-sdk 中提供了两种文件下载的方式:
-
直接读取文件内容:
$data = $upyun->readFile('/temp/upload_demo.png');
-
使用文件流模式下载:
$fh = fopen('/tmp/demo.png', 'w'); $upyun->readFile('/temp/upload_demo.png', $fh); fclose($fh); 注:直接获取文件时,返回文件内容,使用数据流形式获取时,成功返回true。 如果获取文件失败,则抛出异常。
其中,第二种“文件流模式下载”是通过文件流方式把文件下载到服务器。但是我希望的是,能不能以文件流的方式直接读取又拍云上的文件,然后直接返回给客户端来实现下载。
因为按照上面的方法,我需要实现文件流下载文件,就只能通过服务器端中转一下。
当然,用浏览器直接打开文件地址的话,有一些文件可以下载,但是有一些比如视频和图片等等就无法下载,所以直接以浏览器打开的方式下载文件行不通。
希望大家给点思路,谢谢!
php-sdk 地址:https://github.com/upyun/php-sdk
又拍云关于文件下载的说明:http://docs.upyun.com/api/rest_api/#_8
如果只是想直接客户端下载文件,可以试试这个参数:http://docs.upyun.com/cdn/feature/#_upd