Проблемы при загрузке изображений с использованием vue -wysiwyg - PullRequest
0 голосов
/ 13 января 2020

Я использую vue -wysiwyg редактор в моем приложении laravel - vue. В этом редакторе есть возможность загружать изображения, и с помощью неполной документации этого пакета я могу загрузить изображение и получить опубликованный c URL-адрес загруженного файла. Но этот пакет иногда работает и иногда вообще не работает.

Вот как я использую этот пакет

main. js

import wysiwyg from "vue-wysiwyg";

Vue.use(wysiwyg, {
    forcePlainTextOnPaste: true,
    image: {
        uploadURL: "/api/save-support-files",
        dropzoneOptions: {}
    },
});

/ api / save-support-files

public function uploadUserFile(Request $request)
    {
        $uploadedFile = $request->file('file');


        if (false == $uploadedFile) {
            return response()->api(false, 'Kindly upload a file');
        }

        $allowed_file_extentions = [
            'jpeg',
            'png',
            'jpg',
            'gif',
            'svg'
        ];

        if (false == in_array($uploadedFile->getClientOriginalExtension(), $allowed_file_extentions)) {
            return response()->api(false,'Allowed file types are jpeg, png, jpg, gif, svg',null);
        }


        $file_url = Storage::disk('public')->putFileAs('/support-files',$uploadedFile,generateRandomString('5').'.'.$uploadedFile->getClientOriginalExtension());

//        return response()->api(true,'File uploaded successfully',config('app.url').'/storage/'.$file_url);

        return config('app.url').'/storage/'.$file_url;
}

Проблемы, с которыми я сталкиваюсь сейчас:

  1. Как только я выберу изображение из файлового браузера, изображение успешно загружено через API, но оно не отображается в редакторе.

  2. Невозможно выбрать уже загруженное изображение, мне нужно обновить страницу sh, а затем снова выберите файл, чтобы загрузить его снова.

У кого-нибудь есть решение этой проблемы? Пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 23 марта 2020

функция моего магазина загрузки выглядит следующим образом:

public function store(Request $request)
{
    $request->validate(['file' => 'required']);

    $file = $request->file('file');
    if ($file->isValid()) {
        $path = $file->storePublicly(now()->format('Y' . DIRECTORY_SEPARATOR . 'm' . DIRECTORY_SEPARATOR . 'd'));

        return response(Storage::disk('public')->url($path), Response::HTTP_CREATED)->withHeaders(
            [
                'content-type' => 'text/html'
            ]
        );
    }

    abort(Response::HTTP_BAD_REQUEST);
}

убедитесь, что вы установили APP_URL в .env на полный URL (http://my-site.com)

убедитесь, что вы запускаете php artisan storage:link

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...