Laravel的工作覆盖了其他工作?

问题描述 投票:0回答:2

我不太确定怎么说这个,但是我有一个名为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$fileName也是如此。不知何故,它转换的文件是错误的,因此输出Jpeg来自其他人的上传。

有谁知道我可以尝试什么?我甚至不确定从哪里开始调试。

php laravel laravel-5 laravel-5.2 cloudconvert
2个回答
0
投票

简单交换time()

$mark = microtime().rand(10,100);
$tempName = $originalFileName.'_'.$mark.'.jpg';
$fileName = $originalFileName.'_'.$mark;

0
投票

Eugh,好吧,我终于解决了。需要重新实例化CloudConvert。如果有人再遇到过这个问题,请参阅主题here

© www.soinside.com 2019 - 2024. All rights reserved.