在Laravel 5.5项目中,我已成功将信息保存到MySQL的产品表中.信息包括base64字符串,它基本上是一个图像.但是,当我在laravel项目的公共文件夹中搜索图像时,我遇到了一个问题.下面是我的ProductController.php代码
public function update(Request $request, $id)
{
$data = $request->validate([
'product_name' => 'required',
'description' => 'required',
'rating' => 'required'
]);
$uploaded_image = $request->input('uploaded_image');
$data['uploaded_image'] = $uploaded_image['value']; // base64 string
$product = Product::findOrFail($id);
$product->update($data);
// the data stored into the database with no issue
$image_base64 = base64_decode($uploaded_image['value']);
$path = public_path();
$success = file_put_contents($path, $image_base64.".png");
return response()->json($data);
}
Run Code Online (Sandbox Code Playgroud)
我在下面看到以下错误:
message:"file_put_contents(C:\xampp\htdocs\laravel-api\public): failed to open stream: Permission denied"
Run Code Online (Sandbox Code Playgroud)
通过看到不同的来源,我做了以下,但没有改变.
任何的想法?
根据我们的讨论,您需要提供以下权限:
icacls "public" /grant USER:(OI)(CI)F /T
Run Code Online (Sandbox Code Playgroud)
USER你的电脑用户在哪里?
此外,如果要在存储路径中保存base64映像,请使用以下代码:
//Function to save a base64 image in laravel 5.4
public function createImageFromBase64(Request $request){
$file_data = $request->input('uploaded_image');
//generating unique file name;
$file_name = 'image_'.time().'.png';
//@list($type, $file_data) = explode(';', $file_data);
//@list(, $file_data) = explode(',', $file_data);
if($file_data!=""){
// storing image in storage/app/public Folder
\Storage::disk('public')->put($file_name,base64_decode($file_data));
}
}
Run Code Online (Sandbox Code Playgroud)
希望这对你有所帮助!
| 归档时间: |
|
| 查看次数: |
4406 次 |
| 最近记录: |