Я не могу пересылать Изображение с AJAX

У меня есть Form в HTML, чтобы мочь обновлять изображение профиля пользователей из-за собственной одной.

У меня есть AJAX, который посылает изображение путь POST в PHP и в свою очередь PHP пересылает ее в сервер. Проблема состоит в том, что, хотя form позволяет мне выбирать файл, выбрав изображение (onchange), он не посылает изображение в вопросе.

Уже я попробовал делать это также делая один trigger(submit) с input type submit, но происходит точно то же самое что, использовав on(change) с input type file.

Я оставляю им scripts, если кто-то может говорить мне, что я врежу, чтобы так это изменять, ему благодарен за это заранее.

Рукописный шрифт HTML

<form enctype="multipart/form-data" class="form-img" method="POST">
<div class="row" style="margin: 0px; font-size: 18px;">
    <div class="col-md-4">
        <img width="100%" height="auto" src="fotos/<?php echo $_SESSION['logo']; ?>"><br>
    </div>
    <div class="col-md-8">
        <label style="display: block;">Seleccione una imagen de perfil:</label>
        <div hidden><input name="image" type="file"></div>
        <div class="btn-only blue upload" style="margin: 0px;">Buscar</div>
        <span class="img-status"></span>
    </div>
</div><hr>
</form>

Рукописный шрифт AJAX (jQuery)

$(".upload").on("click", function(){
    $("[name=image]").trigger("click");
});
$("[name=image]").on("change", function(){
    $.ajax({
        url: "functions/cambiar_imagen.php",
        type: "post",
        data: $(".form-img").serialize(),
        success: function(e){
            alert(e);
        }
    });
});

Рукописный шрифт PHP

<?php
session_start();
include("serverconfig.php");
include("codificar_clave.php");
include("log.php");

$target_path = "../fotos/";
$target_path = $target_path.basename($_FILES["image"]["name"]);
$temp_path = $_FILES["image"]["tmp_name"];

if(move_uploaded_file($temp_path, $target_path)){
    echo "El archivo ".basename($temp_path). " ha sido subido";
} else {
    echo "Ha ocurrido un error, trate de nuevo!";
}
?>
1
задан 09.02.2017, 18:44
0 ответов

Измени дату: из-за FormData.

он остался бы немного сходным с этим:

$.ajax({
        url: "functions/cambiar_imagen.php",
        type: "post",
        data: new FormData($(".form-img")[0]),
contentType: false,
        cache: false,
        processData:false,
        success: function(e){
success: function(e){
            alert(e);
        }
    });
});
0
ответ дан 03.12.2019, 17:31
  • 1
    API FormData он совместим с IE10+ –  24.01.2017, 19:25
  • 2
    @MarcosGallardo ¿ это существует все еще? –  24.01.2017, 19:35
  • 3
    Уже probé используя formData, но é sa способ не выполняет Ajax прямо. –  24.01.2017, 20:02
  • 4
    Я издал тебе ответ @IgnazVolkov с этим я funcionó и также я совсем не проходил используя formData –  24.01.2017, 20:04
  • 5
    Я верю в то, что aú n así стоит упоминать о совместимости. –  24.01.2017, 20:24

Теги

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