2014-08-28 82 views
0

我的应用程序使用tpyo/amazon-s3-php-class来放置和从Amazon S3存储获取对象。强制文件通过亚马逊S3下载php类

文件不公开,我希望我的用户能够通过我的应用程序下载私人文件。

亚马逊S3的PHP类提供了两个选项来获取文件:

  1. 保存的对象文件:S3::getObject($bucketName, $uploadName, $saveName)
  2. 保存的目的是任何类型的资源:S3::getObject($bucketName, $uploadName, fopen('savefile.txt', 'wb'))

但这两种方法都会将文件保存到我的Web服务器。我怎样才能强制文件下载到客户端的电脑?

回答

2

我相信你可以使用第二个选项,通过输出缓冲器作为文件名参数为FOPEN(设置正确的头后):

header('Content-Description: File Transfer'); 
header('Content-Type: application/octet-stream'); 
//etc etc 

S3::getObject($bucketName, $uploadName, fopen('php://output', 'wb')); 
+0

谢谢你史蒂夫。我看起来太糟糕了,你让我的一天.. – 2015-03-26 23:19:40