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();
}