【发布时间】:2020-03-12 11:06:36
【问题描述】:
我正在尝试将图像放在文件夹中,而不是使用时间戳生成。 这给了我标题中的错误。
干预\图像\异常\NotWritableException 无法将图像数据写入路径(/Users/me/Sites/test/public/uploads/images/1573905600/title-1.jpg)
这是我的代码:
$photoPaths = $request->get('photo_paths');
if (isset($photoPaths)){
$photos = explode(';', $photoPaths);
$path = storage_path('tmp/uploads/');
$newPath = public_path('/uploads/images/').strtotime('12:00:00')."/";
$arrayPhoto = array();
foreach($photos as $photo){
$photoPath = $path . $photo;
if (File::exists($photoPath)) {
$newPhotoName = Str::slug($request->get('titre')."-".$i,"-").".jpg";
$newPhotoFullPath = $newPath . $newPhotoName;
$photo = Image::make($photoPath);
// $photo->resize(1400, 1050);
$photo->resize(null, 1050, function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
});
$photo->encode('jpg', 85);
if(!Storage::disk('public')->has($newPath)){
Storage::disk('public')->makeDirectory($newPath); //It seems it doesn't work
}
$saved = $photo->save($newPhotoFullPath); //Create the Exception
}
}
}
我做错了什么?
谢谢
【问题讨论】:
-
您想在哪里存储文件?在公共目录或存储目录中?我在这里看到奇怪的是你使用
$newPath = public_path('/uploads/images/')...,它将返回公共目录的完全限定路径加上'/uploads/images/',但是你尝试在存储文件夹@987654323上创建一个具有该路径的目录@(默认公盘使用本地驱动,文件存放在storage/app/public)。
标签: laravel intervention