Со стороны сервера, используя платформу Laravel Php, вы можете получить файл с помощью такой функции:

аюсь создать загрузчик файлов в модале Sweet Alert 2 с помощью jQuery и php. Вот мой код, но он не работает: как я могу заставить это работать?

Спасибо

HTML (кнопка, чтобы открыть модал с Sweet Alert 2):

<button class="bx--btn bx--btn--primary" type="button" id="swal_upload">Apri</button>

JavaScript:

$('#swal_upload').click(function(){
    var api = 'api/UploadFile.php';
    swal({
        title: "Carica immagine",
        html: '<input id="fileupload" type="file" name="userfile">'
    }).then(function() {
        var formData = new FormData();
        formData.append('userfile', $('#fileupload').val().replace(/.*(\/|\\)/, ''));
        console.log(formData);
        $.ajax({
          type: 'POST',
          url: api,
          data: formData,
          dataType: 'json',
          processData: false,
          contentType: false,
          headers: {"Content-Type":"form-data"},
          async: true,
          success: function(result){
            console.log("OK client side");
            console.log(result.Response);
          }
        });
    })
  });

php (api / UploadFile.php):

$entered = "PHP started";

$tmpFilePath = $_FILES['userfile']['tmp_name'];

$uploaddir = 'public/';

  if ($tmpFilePath != ""){
    $newFilePath = $uploaddir . basename($_FILES['userfile']['name']);

    if(move_uploaded_file($tmpFilePath, $newFilePath)) {
      $uploaded = "Upload OK server side";
    } else {
      $uploaded = "Upload failed server side";
    }
  }

  // Prepare response, close connection and send response to front-end
  $array['Response'] = array(
    'entered' => $entered,
    'tmp_path' => $tmpFilePath,
    'new_path' => $newFilePath,
    'file_name' => $_FILES['file']['name'],
    'uploaded' => $uploaded
  );

  echo json_encode($array);

Вывод у меня в консоли:

FormData {}прото: FormData OK на стороне клиента {введено: «PHP запущен», tmp_path: null, new_path: null, имя_файла: null, загружено: null} введено: «PHP запущено» имя_файла: null new_path: null tmp_path: null загружено: nullпрото: Object

Как видите, php запускается, но файл не передается на сервер.

Ответы на вопрос(0)

Ваш ответ на вопрос