загрузка файла ajax - PullRequest
       19

загрузка файла ajax

2 голосов
/ 01 июля 2011

Я пытаюсь загрузить, обработать и отобразить файл без перезагрузки страницы.Что я использую для jquery, чтобы правильно выложить файл на сервер?

 <html>

 <body>

 <form action="upload.php" method="post" enctype="multipart/form-data" id="uploadform">
  <label for="file">Filename:</label>
  <input type="file" name="file" id="file" /> 
  <br />
  <input type="submit" id="submit" />
  </form>

  </body>
  </html>

Ответы [ 3 ]

3 голосов
/ 01 июля 2011

Вы можете сделать это, поместив форму загрузки в iframe и установив связь между главным окном и фреймом с помощью javascript. Это некрасиво, но это единственный способ сделать это в некоторых браузерах.

Загрузка файла jQuery - это потрясающий плагин, который включает в себя асинхронную загрузку XHR и использует iframe для браузеров, которые не поддерживают эту функцию. Он также поддерживает перетаскивание (для способных браузеров) из коробки. Это не самый простой в мире плагин для использования, но оно того стоит, оно охватывает все основы.

0 голосов
/ 18 сентября 2012

Вы можете загрузить форму, содержащую INPUT [type = "file"], не перезагружая страницу с помощью jquery.upload.js.В обработчике $ .Deferred.done вы можете добавить свой собственный код для отображения ответа сервера.

$.upload( form.action, new FormData( myForm))
.progress( function( progressEvent, upload) {
    if( progressEvent.lengthComputable) {
        var percent = Math.round( progressEvent.loaded * 100 / progressEvent.total) + '%';
        if( upload) {
            console.log( percent + ' uploaded');
        } else {
            console.log( percent + ' downloaded');
        }
    }
})
.done( function( data) {
    console.log( 'Finished upload');

    // add your code for rendering the server response
    // into html here
});

Вы можете получить его здесь: https://github.com/lgersman/jquery.orangevolt-ampere/blob/master/public/lib/ampere/jquery.upload.js

0 голосов
/ 01 июля 2011

Используя vanilla HTML, невозможно загрузить файл по запросу AJAX.Взгляните на что-то вроде SWFUpload .Вы можете загружать несколько файлов, задавать фильтры подстановки для раздела файла и иметь возможность отображать индикаторы выполнения и другую информацию о состоянии во время загрузки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...