CakePHP 3.4应用程序使用Burzum/FileStorage插件(使用KnpLabs/Gaufrette)管理上传到AWS S3。不幸的是,我遇到了MS文件(docx、xlsx等)被检测为ZIP文件的问题。
我修改了我的代码,首先使用finfo,如果它检测到zip,请查看扩展名,看看它是否是一个office文件。现在,我可以通过执行一个file_storage表将这个正确的mimetype传递给patchEntity表。到目前一切尚好。
但是,FileStorage插件调用KnpLabs/Gaufrette将文件实际发送到S3,但它似乎没有发送mimetype/contenttype。因此,Gaufrette在AwsS3适配器中使用自己的finfo技巧,在S3上为项目编写一个元数据字段“Content:application/ zip”,从而使Office文件作为压缩文件下载.
有没有办法在AwsS3适配器的选项中设置正确的内容类型?
谢谢!
发布于 2018-08-24 09:06:57
这里提到的答案是:https://github.com/burzum/cakephp-file-storage/issues/36
例如,可以使用以下代码访问适配器并设置Content:
$Adapter = \Burzum\FileStorage\Storage\StorageManager::adapter('S3');
$Adapter->getAdapter()->setMetadata($key, array('contentType' => 'whatever'));感谢burzum指出了这一点!
https://stackoverflow.com/questions/51896441
复制相似问题