Laravel: зашифровать загруженный файл / изображение

Я новичок в laravel, попробуйте зашифровать загруженный файл. Вот мой контроллер:

if ($file != null && !empty($file)) 
{
   $userfile = DNEUser::find($lastUserId);
   $user_store_pic = $request->file('user_store_pic');
   $fileContent = $user_store_pic->get();
   $encryptedContent = encrypt($fileContent);
   $s3 = \Storage::disk('uploads');
   //$array=explode(" ",$encryptedContent); 
   $user_store_pic_name = $lastUserId.'_'.time().'.' .$encryptedContent->getClientOriginalExtension();
   $filePath = 'store/'.$user_store_pic_name;
   $s3->put($filePath, file_get_contents($encryptedContent));
   $userStorePicName = $filePath;
   $userfile->user_store_pic = $userStorePicName;
   $userfile->save();
}

Я пытаюсь зашифровать файл как https://stefanzweifel.io/posts/how-to-encrypt-file-uploads-with-laravel/

но я получил ошибку при отправке формы:

"ymfony \ Component \ Debug \ Exception \ FatalThrowableError (E_ERROR) Вызов функции-члена getClientOriginalExtension() on string"

Я пытаюсь преобразовать в массив, используя Explode, но он показывает ту же ошибку для массива:

"Вызов функции-члена getClientOriginalExtension () для массива"

2 ответа

Вы должны использовать $user_store_pic->getClientOriginalExtension(); на месте $encryptedContent->getClientOriginalExtension()

Это может помочь вам.

Замени это

if ($file != null && !empty($file)) 
{
   $userfile = DNEUser::find($lastUserId);
   $user_store_pic = $request->file('user_store_pic');
   $fileContent = $user_store_pic->get();
   $encryptedContent = encrypt($fileContent);
   $s3 = \Storage::disk('uploads');
   //$array=explode(" ",$encryptedContent); 
   $user_store_pic_name = $lastUserId.'_'.time().'.' .$user_store_pic->getClientOriginalExtension();
   $filePath = 'store/'.$user_store_pic_name;
   $s3->put($filePath, $encryptedContent);
   $userStorePicName = $filePath;
   $userfile->user_store_pic = $userStorePicName;
   $userfile->save();
}
Другие вопросы по тегам