2016-02-05 3 views
0

Я пытаюсь сделать загрузчик изображений с php и jquery, но я не могу заставить его работать.
Мой вопрос:
Почему $ _FILES ['image']; пусто?
Heres мой код

Html
index.php

<form id="uploadForm" action="" method="post"> 
<input name="image" type="file" id="image" /> 
<a href="#" id="uploadforms">Upload</a> 
</form> 
<div id="uploadresult"></div> 

JQuery
javascript.js

function uploadimages(){ 
    $.ajax({ 
     type: 'POST', 
     url: '../ajax/upload.php', 
     processData: false, 
     contentType: false, 
     cache: false, 
     data: new FormData(this), 
     success: function (data) { 
     $("#uploadresult").html(data); 
     }, 
    }); 
    } 
    $("#uploadforms").click(function(){ 
    uploadimages(); 
    }); 

Php
upload.php

<?php 
if(!empty($_FILES['image'])) { 
    echo "Upload image"; 
} 
else{ 
    echo "Error"; 
} 
?> 
+0

не дубликат. Ниже приведен правильный ответ –

ответ

1

Вы забыли enctype='multipart/form-data' в форму как этот

<form id="uploadForm" action="" method="post" enctype="multipart/form-data"> 

Для получения дополнительной информации нажмите here и here

Обновление:

Pass Форма от вызова функции

$("#uploadforms").click(function(){ 
    var form = $('form')[0]; //access form obj 
    uploadimages(form); 
    }); 

И его следует использовать как

function uploadimages(formObj){ 
    $.ajax({ 
     type: 'POST', 
     url: '../ajax/upload.php', 
     processData: false, 
     contentType: false, 
     cache: false, 
     data: new FormData(formObj), //changes here 
     success: function (data) { 
     $("#uploadresult").html(data); 
     }, 
    }); 
    } 
+0

Даже при этом он все еще не работает, $ file [] по-прежнему пуст – Avoka94

+0

См. Обновление. –

+1

Спасибо! это помогло! – Avoka94

Смежные вопросы