14

I want to upload a file using Ajax and php. I have a form with <input type="file"> tag. I want when user browses a file and clicks on submit, the file to be uploaded without a refresh. How should I do this ? It does't matter if refresh occur but i want to upload file with help of ajax.

tftd
  • 16,203
  • 11
  • 62
  • 106
user306205
  • 141
  • 1
  • 1
  • 4

5 Answers5

8
  • Use a hidden iframe and set your form's target to that iframe's name. This way, when the form is submitted, only the iframe will be refreshed.
  • Have an event handler registered for the iframe's load event to parse the response.

More details on my blog post: http://blog.manki.in/2011/08/ajax-fie-upload.html

Manki
  • 3,779
  • 4
  • 25
  • 18
2

I did it with this jquery plugin. It pretty much mimics standard jquery ajax functionality, but also allows you to send data using iframe. No flash involved, pure javascript.

http://malsup.com/jquery/form/

Here is a file upload example
http://malsup.com/jquery/form/#file-upload

Nikita Rybak
  • 67,365
  • 22
  • 157
  • 181
1

This plugin uses XHR for uploading multiple files with progress-bar in FF3.6+, Safari4+, Chrome and falls back to hidden iframe based upload in other browsers, providing good user experience everywhere. check this: http://valums.com/ajax-upload/

zamoldar
  • 548
  • 10
  • 13
0

Take a look at SWFUpload, it should do what you want.

Mitch Dempsey
  • 38,725
  • 6
  • 68
  • 74