Vue.js с загрузкой изображения API Laravel 8 выдает ошибку 500

Ниже приведен этот код для пути загрузки изображения; это мой код загрузки шаблона.

<div class = "form-group">
    <div class = "form-row">
        <div class = "col-md-6">
            <input @change = "onFileSelected" class = "custom-file-input" type = "file">
            <small class = "text-danger" v-if = "errors.photo"> {{errors.photo[0]}} </small>
            <label accept = "image/*" class = "custom-file-label" for = "customFile" id = "photo">Choose file</label>
        </div>
        <div class = "col-md-6">
            <img :src = "form.photo" style = "height: 40px; width:40px;">
        </div>
    </div>
</div>

Это функция события клика; это данные, которые я хочу передать в свой API.

ata() {
    return {
      form:{
        name: null,
        email: null,
        address: null,
        salary: null,
        joining_date: null,
        nid: null,
        phone: null,
        photo: null
      },
      errors: {
        
      }
    }
  },
  methods: {
      
      onFileSelected(event){
        // console.info(event)
        let file  = event.target.files[0];
        if (file.size > 1048770) {
          //  Notification.image_validation()
          Toast.fire({
          icon: 'error',
          title: 'upload image less than 1MB'
          })
        }else {
           //console.info(form)
          let reader = new FileReader();
          reader.onload = event =>{
            this.form.photo = event.target.result
            console.info(event.target.result)
          };
            reader.readAsDataURL(file)
        }
      },

Ниже приведен код, на который я нажимаю свою дату.

employeeinsert()
{
    console.info(this.form.photo)
    axios.post('/api/employee', this.form)
        .then(() => {
            // console.info(this.form)
            // this.$router.push({name: 'employee'})
            // Toast.fire({
            // icon: 'success',
            // title: 'employee add success'
            // })
        })
        .catch(error => this.errors = error.response.data.errors)
}

Это проверки бэкэнда Laravel 8. Здесь я пытаюсь получить изображение запроса и изменение имени и пытаюсь сохранить свою общую папку.

if ($request->photo) {
    $position = strpos($request->photo, ';');
    $sub = substr($request->photo, 0, $position);
    $ext = explode('/', $sub)[1];

    $name = time() . "." . $ext;
    $img = Image::make($request->photo)->resize(240, 200);
    $upload_path = 'backend/employee';
    $inage_url = $upload_path . $name;
    $img->save($inage_url);

    return console . log($inage_url);

    Employee::insert([
        'name' => $request->name,
        'email' => $request->email,
        'address' => $request->address,
        'salary' => $request->salary,
        'joining_date' => $request->joining_date,
        'nid' => $request->nid,
        'phone' => $request->phone,
        'photo' => $last_image
    ]);

Когда я загружаю изображение, я получаю ошибку 500.

Вот ошибка 500 с любыми логами.

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

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

lagbox 13.12.2020 19:38

понятия не имею, почему 500, но я могу убедиться, что моя БД и другая конфигурация верны

Anonymous shooter 13.12.2020 19:39

Несколько вещей, которые могут вызвать ошибку 500, видимую в вашем коде: 1: return console.info($inage_url) console.info - это javascript, а не php, 2: $inage_url = $upload_path.$name; это должно быть $inage_url = $upload_path.'/'.$name, иначе $img->save($inage_url); может вызвать ошибку как путь неправильно сформирован, 3: неясно, откуда берется $last_image в'photo' => $last_image

Donkarnash 13.12.2020 20:49

@Donkarnash, спасибо за решимость добавить это как ответ или принять

Anonymous shooter 13.12.2020 21:08

@Anonymousshooter Готово - добавлено как ответ для последующих посетителей

Donkarnash 13.12.2020 21:15
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
1
5
699
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Несколько вещей, которые могут вызвать ошибку 500, видимую в вашем коде:

  1. return console.info($inage_url): console.info() — это javascript, а не PHP

  2. $inage_url = $upload_path.$name; должно быть $inage_url = $upload_path.'/'.$name иначе $img->save($inage_url); может вызвать ошибку, так как путь неправильно сформирован

  3. Непонятно, откуда $last_image в 'photo' => $last_image

Другие вопросы по теме