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

#laravel #vue.js #laravel-8 #image-upload #http-status-code-500

#laravel #vue.js #laravel-8 #загрузка изображения #http-status-code-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>
 

Это функция события click; это данные, которые я хочу передать в свой 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.log(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.log(form)
          let reader = new FileReader();
          reader.onload = event =>{
            this.form.photo = event.target.result
            console.log(event.target.result)
          };
            reader.readAsDataURL(file)
        }
      },
 

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

 employeeinsert()
{
    console.log(this.form.photo)
    axios.post('/api/employee', this.form)
        .then(() => {
            // console.log(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. Пожалуйста, помогите решить эту проблему.

Комментарии:

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

2. понятия не имею, почему 500, но я могу убедиться, что мои db и другие conf верны

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

4. @Donkarnash спасибо за решение добавить это в качестве ответа, чтобы принять

5. @Anonymousshooter Сделано — добавлено в качестве ответа и для последующих посетителей

Ответ №1:

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

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