Редактировать и копировать изображение в Laravel [Не могу записать данные изображения в путь] - PullRequest
0 голосов
/ 14 ноября 2018

Я создал следующую 4 модель и структуру ее таблицы для моего проекта:

Media.php Для загрузки изображений в приложение

Структура таблицы Medias

id |путь

Пример пути: uploads / images / media / food-1542110154.jpg

Post.php Создатьpost

Структура таблицы сообщений

id |название |содержимое

FeaturedImage.php Рекомендуемое изображение для сообщения

Структура таблицы сообщений

id |post_id |путь

Пост-модель и модель FeaturedImage находятся в соотношении один к одному

UploadImage.php Для изменения размеразагруженное изображение и переместить его в другой каталог.Эта модель не имеет миграции и контроллера

Фрагмент кода из PostsController.php для создания записи

use App\UploadImage;
use App\Media;
class PostController extends Controller
{
private $imagePath= "uploads/images/post/";
public function store(Request $request)
{
    $post = new Post;
    $post->title = $request->title;
    $post->content = $request->content;
    $post->save();

    $media = Media::find($request->featured);
    if (!File::exists($this->imagePath)) {
        File::makeDirectory($this->imagePath);
    }
    $upload = new UploadImage;
    $image= $upload->uploadSingle($this->banner, $media->path, 400,300);
    $post->image()->save(new FeaturedImage([
        'path' => $image
    ]));

}
  Session::flash('success', 'Post created sucessfully !');
  return redirect()->route('post.index');
}

Фрагмент кода из UploadImage.php

use Intervention\Image\Facades\Image;
use Spatie\LaravelImageOptimizer\Facades\ImageOptimizer;
use Illuminate\Database\Eloquent\Model;
class UploadImage extends Model
{

  public  function  uploadSingle($savePath, $image,$width,$height)
 {
    Image::make(public_path($image))->fit($width, $height)->save($savePath);
    ImageOptimizer::optimize($savePath);
    return $savePath;
 }  
}

В моем приложении Laravel я пытаюсь отредактировать размер уже загруженного изображения с помощью метода, записанного в UploadImage.php, сохранить отредактированное изображение в каталоге post и сохранить его путь в таблице featured_images.

Но я получаю ** Не могу записать данные изображения в путь ** ошибка.

Я был бы очень благодарен, если бы кто-нибудь мог указать на ошибки, которые я сделал.

Пожалуйста, не отмечайте это как дублирующийся контент.Поскольку я просмотрел почти все сообщения, связанные с такого рода ошибками, и они мне не помогли.

1 Ответ

0 голосов
/ 16 ноября 2018

Подправил несколько строк в моей модели UploadImage.php и получил решение.

public  function  uploadSingle($savePath, $image,$width,$height)
{
    $filename = basename($image);
    $location = $savePath . $filename;
    Image::make($image)->save($location);
    ImageOptimizer::optimize($location);
    return $location;
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...