Возникла проблема при попытке поместить процесс загрузки файлов в очередь.Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Возникла проблема при попытке поместить процесс загрузки файлов в очередь.

Сообщение Anonymous »

Обзор

Я хочу поместить текущий процесс загрузки файла в очередь. Когда загрузка файла завершится, пользователю будет отправлено электронное письмо о завершении процесса загрузки. Эта идея была реализована, поскольку будут загружаться большие наборы файлов, и мы хотели бы, чтобы пользователь переходил к другим частям системы во время процесса загрузки.

Что происходит прямо сейчас!

В настоящее время я перебираю все файлы, которые предназначены для загрузки (в моем контроллере), и создание массива загруженных файлов. Я делаю это потому, что Laravel не позволяет мне отправлять модели в очередь. Вот код

Код: Выделить всё

if (Input::hasFile('files')) {

$filesarr = Input::file('files');

foreach($filesarr as $fileitem)
{

array_push($filesArray, array(
'realpath'=>$fileitem->getRealPath(),
'originalname' => $fileitem->getClientOriginalName(),
'originalextension'=>$fileitem->getClientOriginalExtension(),
'mime' =>$fileitem->getClientMimeType(),
'size' =>$fileitem->getClientSize(),
'maxFileSizeAllowed' => $fileitem ->getMaxFileSize(),
'isUpdateMode' => 1,
'orealPath' => $fileitem->getOriginalPath()
));
}
}
Затем я отправляю этот массив в очередь.

Код: Выделить всё

Queue::push('TopicQueue', array ('dataArr' =>$filesArray));
В моем методе запуска очереди я получаю массив загруженных файлов. Далее следует код

Код: Выделить всё

$files = $dataArray['$filesArray'];
Теперь я пытаюсь использовать метод загрузки файлов laravel, поэтому снова пытаюсь создать экземпляр класса UploadFile Laravel. Код для этого следует

Код: Выделить всё

 foreach($allFiles as $file)
{
Log::info("File is :" .var_export($file,true));
Log::info('Going to upload file : '.$file['originalname']);
try
{
$uploadFile = new UploadedFile($file['realpath'],$file['originalname'],$file['mime'],$file['size']);
}
catch(Exception $ex)
{
Log::info('The error is : '.$ex->getMessage());
}
}
но здесь я столкнулся с проблемой (и это правильно). При создании экземпляра появляется сообщение


Файл не существует.


Это происходит внутри конструктора самого класса uploadfile.

Я также пытался сериализовать и десериализовать класс, но, видимо, UploadFile не сериализуем.

Кто-нибудь хочет помочь, пожалуйста!

Спасибо

Подробнее здесь: https://stackoverflow.com/questions/236 ... to-a-queue
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»