Посылать файл из-за [дублированного] AJAX

У этого вопроса уже есть ответ здесь:

Я стараюсь посылать из-за ajax файл посредством одного input file, но PHP меня возвращает ошибка.

Как могут быть посланными файлы тип "file" из-за ajax?

КОД HTML

<form id="form" enctype="multipart/form-data">
    <input type="file" name="archivo" id="archivo">
    <p>
    <input type="submit" name="submit">
</form>

КОД АЯКС

$(document).ready(function($) {
   //// METODO PARA INSERTAR LOS DATOS //// 
    $("#form").submit(function() {
        event.preventDefault();

        var cadena = $(this).serializeArray();

        $.ajax({
            url: 'php.php',
            type: 'POST',
            data: cadena
        })      
        .done(function(respuesta) {

            var resultado = $.parseJSON(respuesta);
            console.log(resultado);
        .fail(function() {
            console.log("error");
        });
});
});

КОД PHP

<?php
    $nombre = array($_POST['archivo']);
    echo json_encode($nombre);
?>
2
задан 05.01.2017, 21:52
0 ответов

Неудар в лунку типа file они идут в переменную $_FILES

$nombre = $_FILES['file-0'];

на javascript ты должен реализовывать это

var data = new FormData();
jQuery.each($('input[type=file]')[0].files, function(i, file) {
    data.append('file-'+i, file);
});
var other_data = $('form').serializeArray();
$.each(other_data,function(key,input){
    data.append(input.name,input.value);
});
jQuery.ajax({
    url: 'php.php',
    data: data,
    cache: false,
    contentType: false,
    processData: false,
    type: 'POST',
    success: function(data){
        alert(data);
    }
});
3
ответ дан 03.12.2019, 17:51
  • 1
    также, если бы он возвратил этот $ _FILES, он возвращает мне пустую стоимость –  05.01.2017, 22:01
  • 2
    Привет, ¿ в конце концов ты смог решить это? У меня есть точно та же проблема: Когда я реализую в enví или от form, не используя ajax, я получаю без проблем стоимость файла, но если я это делаю из-за ajax совсем не... –  14.09.2017, 09:19

Теги

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