[英]"Can't write image data to path" - Laravel Image Intervention
[英]laravel Can't write image data to path
无法存储图像总是说无法写入图像数据错误:无法将图像数据写入路径 (E:\\work\\iShop-Admin-backend\\storage/app/public/images/p/4069/11016/ 4069_11016_600x600.jpg)我的代码:
$destinationPath = storage_path() . '/app/public/images/p/' . $product->id_product . '/';
if (!File::exists($destinationPath)) {
File::makeDirectory($destinationPath);
}
for ($i = 1; $i<=6; $i++){
if($row["image_{$i}"] != "")
$value = $row["image_{$i}"];
$contents = file_get_contents($value);
$imageBase64 = base64_encode($contents);
$filetype = \File::extension($value);
//$ext = ltrim($filetype, 'image/');
$ext = 'image/' . $filetype;
$media = 'data:' . $ext . ';base64,' . $imageBase64;
//Log::info($media);
//Log::info($ext);
if (!empty($media)) {
$position = ProductImage::where('id_product', $product->id_product)->max('position');
$data = array(
'id_product' => $product->id_product,
'position' => $position ? $position + 1 : 1,
'extension' => '.' . $filetype
);
if ($i == 1) {
$data['cover'] = 1;
} else {
$data['cover'] = 0;
}
$image = ProductImage::create($data);
LogController::log('STORE', 'catalog/product/upload/' . $product->id_product, $product->id_product, 'PRODUCT', 'add image to product where id_product=' . $product->id_product, null, $image);
if (!File::exists($destinationPath . $image->id_image)) {
File::makeDirectory($destinationPath . $image->id_image);
$destinationPath = $destinationPath . $image->id_image . '/';
$height = Image::make($media)->height();
$width = Image::make($media)->width();
Image::make($media)->resize(600, 600)->save($destinationPath . $product->id_product . '_' . $image->id_image . '_600x600' . '.' . $filetype);
Image::make($media)->resize(270, 270)->save($destinationPath . $product->id_product . '_' . $image->id_image . '_270x270' . '.' . $filetype);
Image::make($media)->resize(140, 140)->save($destinationPath . $product->id_product . '_' . $image->id_image . '_140x140' . '.' . $filetype);
Image::make($media)->resize(80, 80)->save($destinationPath . $product->id_product . '_' . $image->id_image . '_80x80' . '.' . $filetype);
$destinationPath = storage_path() . '/app/public/images/p/' . $product->id_product . '/';
}
}
}
如何解决?
除此之外,您还需要确保文件夹路径存在并且设置了正确的权限。
$relPath = 'img/product/';
if (!file_exists(public_path($relPath))) {
mkdir(public_path($relPath), 777, true);
}
其中$relPath
是相对于public
目录的路径。
但是,此要求是特定于 Windows 的。 在 linux 中,如果文件夹目录不存在,则会创建该目录。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.