我不太确定如何写这个单词,但是我有一个名为uploadFile
的工作,该工作使用CloudConvert将上传的文件(例如PDF)转换为JPG。
单独使用,一切正常。我可以上传文件,将其保存到S3,然后CloudConvert获取S3文件,将其转换并也上传。完善。
一次被多个人使用时,文件混合在一起。文件名是正确的(因此变量本身必须是正确的),但是实际处理的图像是其他人的某种方式。
$originalFileName = str_replace('.'.$this->extension, '', $this->actualFileName);
$tempName = $originalFileName.'_'.time().'.jpg';
$fileName = $originalFileName.'_'.time();
Storage::disk('s3')->put($folder.$fileName, $file, 'public');
$fileUrl = Storage::disk('s3')->url($fileName);
CloudConvert::file($fileUrl)
->withOptions([
'quality' => 80,
'resize' => '400x400',
])->to(CloudConvert::S3($tempName));
在上面,Storage->put()
和$tempName
中的文件都是正确的。不知何故,它要转换的文件是错误的,因此输出Jpeg来自其他人的上传。
有人知道我可以尝试什么吗?我什至不知道从哪里开始调试。
答案 0 :(得分:0)
简单交换time()
$mark = microtime().rand(10,100);
$tempName = $originalFileName.'_'.$mark.'.jpg';
$fileName = $originalFileName.'_'.$mark;
答案 1 :(得分:0)
嗯,好吧,我终于解决了。 CloudConvert需要重新实例化。如果有人再次遇到此问题,请参见线程here。