Laravel:加密上传的文件/图像

时间:2019-06-29 05:43:51

标签: laravel encryption laravel-encryption

我是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 \组件\调试\异常\ FatalThrowableError   (E_ERROR)调用成员函数getClientOriginalExtension()   字符串”

我尝试使用explode转换为数组,但它对数组显示相同的错误:

  

“在数组上调用成员函数getClientOriginalExtension()”

2 个答案:

答案 0 :(得分:0)

您必须使用$user_store_pic->getClientOriginalExtension(); 代替$encryptedContent->getClientOriginalExtension()

这可能会对您有所帮助。

答案 1 :(得分:0)

替换此

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