2014-10-29 5 views
3

Я полностью нелюбив в jQuery и отчаянно хочу заставить его работать.Простая загрузка файла AJAX jQuery

Это HTML:

<form method="post" enctype="multipart/form-data"> 
    <input id="pic "type="file" name="file" onchange="javascript:this.form.submit();"> 
</form> 

JQuery:

$("#pic").change(function() { 
    var file_data = $('#pic').prop('files')[0]; 
    var form_data = new FormData(); 
    form_data.append('file', file_data) 
    alert(form_data); 
    $.ajax({ 
       url: 'doupload.php', 
       dataType: 'text', 
       cache: false, 
       contentType: false, 
       processData: false, 
       data: form_data, 
       type: 'post', 
       success: function(dat){ 
        alert('it works maybe'); 
       } 
    }); 
}); 

Так что я просто хочу, чтобы отправить файл doupload.php и поймать его там с ($_FILES['file']['tmp_name'])

Но он не работает (ofc), и я не нахожу ничего, что работает либо google, либо стек ...

Я использую этот lilbary: <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js"></script>

+0

Какая ошибка вы получаете? – Ben

+0

Как я могу увидеть ошибку? – user2966167

+0

Посмотрите в консоли javascript и убедитесь, что error_reporting (E_ALL) установлен в php – Ben

ответ

1
<input id="pic "type="file" name="file" onchange="javascript:this.form.submit();"> 

У вас есть "типа =" файл»

Изменить его тип = "файл"

Кроме того, если у вас есть Аякса отправки на изменения через "$("#pic").change(function() { то вы НЕ ДОЛЖНЫ иметь onchange="javascript:this.form.submit();", так как он будет отправлять форму, пока аякс все еще отправляет, что вызывает возможные проблемы времени (например, вызов ajax не завершается)

Насколько я могу судить, вы не должны иметь подать вообще, поскольку данные уже отправлены через вызов ajax.

+0

omg такие глупые ошибки -_- спасибо – user2966167

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