2

我正在使用捆绑包https://github.com/KnpLabs/Gaufrette,这是我的配置:

knp_gaufrette: 
    adapters:
        someadapter:
            amazon_s3:
                amazon_s3_id: service.amazon.s3
                bucket_name: %amazon.s3.bucket_name%
                create: true
    filesystems:
        somefilesystem:
            adapter: someadapter

我有一个上传文件的表格。我的问题是文件在 /tmp/file 目录中上传,然后我尝试将此文件移动到亚马逊:

$filesystem->get('somefilesystem')->rename($tmpPath , $destinyPath);

抛出异常:

The file "/tmp/phpR4YbZN" was not found.

这是有道理的,因为该文件尚未在亚马逊中,而我正在处理该文件系统。但我想知道如何将文件从本地文件系统上传到 AmazonS3。

谢谢!!!

4

1 回答 1

4

你想做这样的事吗?:

$filesystemMap
   ->get('somefilesystem')
   ->write($destinyPath, file_get_contents($tmpPath))
;`

请注意 write 方法有第三个“覆盖”参数(默认为false)。

您可以注册流包装器并像使用普通 php 文件 API/函数一样工作。请参阅https://github.com/KnpLabs/KnpGaufretteBundle#stream-wrapper了解更多信息。

于 2013-01-29T22:59:07.583 回答