2016-04-19 7 views
0

Привет У меня есть его форма для загрузки файлаFormData без кнопки отправки

$("#form").on('submit',(function(e) { 
     e .preventDefault(); 
     $.ajax({ 
      url: "index2.php", 
      type: "POST", 
      data: new FormData(this), 
      contentType: false, 
      cache: false, 
      ... 

в виде HTML:

<form id="form" action="index2.php" method="post" enctype="multipart/form-data"> 
    <input id="uploadImage" type="file" accept="image/*" name="image" /><br/> 
    <input id="button" type="submit" value="Upload"> 
</form> 

это работает. но я хочу удалить кнопку. Я хочу, чтобы загрузка была автоматически при выборе файла.

  $.ajax({ 
       url: "index2.php", 
       type: "POST", 
       data: new FormData("#form"), 
       contentType: false, 

       ... 

Но не работает. может, пожалуйста, помогите мне сделать это?

+0

Вам нужно будет подождать, пока файл не завершит загрузку. Что пробовали? – whipdancer

+0

ОК, я не хочу отправлять и запускать загрузку, я хочу, когда вы выбираете файл из localhost, сразу же загружаете файл – elize

ответ

0

Вам просто нужно прослушать событие onChange для этого ввода.

Ваш код должен выглядеть так:

$('#uploadImage').on('change',function(){ 
    $.ajax({ 
      url: "index2.php", 
      type: "POST", 
      data: new FormData("#form"), 
      contentType: false, 

      ... 
    }); 
}); 
+0

Конструктор 'FormData' не принимает строку выбора CSS в качестве аргумента. Для получения фактического элемента вам понадобится 'new FormData ($ (" # form ") [0])'. – Barmar

1

Вы можете добавить рабочую зону (просто перетащить и падение). посмотрите на AutoUpload: true.

$('.fileupload').fileupload({ 
    dataType: 'json', 
    url: "/somewhere.com/here", 
    dropZone: $("#picturezone"), 
    autoUpload: true, 
    done: function (e, data) { 
    $("#pic").attr("src", URl + data.result.name + "?" + d.gettime()); 
} 
}).on('fileuploadprogressall', function (e, data) { 
    //Do something while it is uploading. 
}); 
+0

спасибо, dropzone.js около 64 кб, почему я должен использовать его, когда я могу это сделать с менее 5 кб? – elize

+0

Мне больше нравится. Обычно я могу показать полученную загрузку в зоне. Но все зависит от вас. – ScarletMerlin

+0

спасибо за ответ. – elize