evd1ser
@evd1ser
fullstac разработчик знаю много умею чуть меньше))

Как загружает файл по https в Laravel?

Добрый день.
На локалье работает загрузка файлов, на сервере стоит https и сервер не принимает файл хотя в заголовках видно что он отправлен

html форма:
<form id="userExel"
          class="js-post"
          action="/clients/addNewFromExel"
          method="post"
          enctype="multipart/form-data">
<input type="file"
           name="file_users"
           class="custom-file-input"
           id="fileUsers"
           required
           accept=".xlsx, .xls">
<label class="custom-file-label" for="fileUsers">Выбрать файл</label>
</form>


js для загрузки:
$('.js-post').submit(function (e) {
    e.preventDefault();
    var self = $(this);
    var formData = new FormData($(this)[0]);

    var fd = new FormData(this); // XXX: Neex AJAX2
    // You could show a loading image for example...

    $.ajax({
      headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
      },
      url: $(this).attr('action'),
      xhr: function () { // custom xhr (is the best)

        var xhr = new XMLHttpRequest();
        var total = 0;
        // Get the total size of files
        var files = self.find('input[type=file]');
        $.each(files, function (i, file) {
          total += file.files[0].size;
        });
        // Called when upload progress changes. xhr2
        xhr.upload.addEventListener("progress", function (evt) {
          // show progress like example

          var loaded = (evt.loaded / total).toFixed(2) * 100; // percent
          loaded = loaded < 100 ? loaded : 100;

          // $('#progress').text('Uploading... ' + loaded + '%' );
        }, false);

        return xhr;
      },
      type: 'post',
      processData: false,
      contentType: false,
      data: fd,
      success: function (data) {
         alert('Успешно загружено');
      },
      error: function(data) {
        alert(data.responseText);
      }
    });
  });


php:
function addNewFromExel(Request $request)
  {
    $response = 'Успешно';
    if ($request->isMethod('post')) {

            $file = $request->file('file_users');

            if ($file->isValid()) {
                echo 'валидный файл';
            } else {
          echo 'ne валидный файл';
           }
      }
}


В чем может быть проблема с https? почему файл не доходит?
  • Вопрос задан
  • 300 просмотров
Решения вопроса 1
@arku
На выводе из dd видно ошибку)
5md5MkvTk6JvD2?d=1

UPLOAD_ERR_NO_TMP_DIR Value: 6; Missing a temporary folder. Introduced in PHP 5.0.3.

Соответственно - нужно чтобы была tmp папка :)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@talespinner
Происходит то, что у тебя на POST запрос отвечает 403-й ошибкой (мол, прав нет).
Не уверен, но по-моему, решение описано здесь, хоть оно и не точное. По-крайней мере, проблема схожая.
https://stackoverflow.com/questions/41660368/larav...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы