我的应用程序正在使用tpyo/amazon-s3-php-class向/从Amazon S3存储中放置和获取对象。
文件不公开,我希望我的用户能够通过我的应用程序下载私人文件。
amazon-s3-php-class 提供了两个获取文件的选项:
S3::getObject($bucketName, $uploadName, $saveName)
S3::getObject($bucketName, $uploadName, fopen('savefile.txt', 'wb'))
但是这两种方法都将文件保存到我的Web服务器。如何强制将文件下载到客户端的计算机上?
答案 0 :(得分:2)
我相信你可以使用第二个选项,将输出缓冲区作为fopen的文件名参数传递(在设置正确的标题后):
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
//etc etc
S3::getObject($bucketName, $uploadName, fopen('php://output', 'wb'));