0

我是 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()”

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

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

4

2 回答 2

0

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

它可能会帮助你。

于 2019-06-29T05:53:57.920 回答
-1

替换这个

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();
}
于 2019-06-29T07:38:05.583 回答