Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

uploading a file via ajax with php

I would like to know if it is possible to upload a binary file via ajax and php, and have a link to download it. I would like to avoid refreshing the entire page, as with a standard html form. So far I have been using forms to get information, such as radio and text boxes, and using javascript to override the default behavior. Is a similar thing possible for uploading a file?

like image 818
Joshxtothe4 Avatar asked Dec 08 '22 07:12

Joshxtothe4


2 Answers

It isn't possible to submit a file through Javascript.

Your options are:

  • The hidden iframe trick, popularized by Google. Implementing this yourself can result in some klunky stuff so there are libraries out there, such as jQuery, which have plugins, such as jQuery's popular Form Plugin, that automate this so you don't have to feel dirty inside when using it.
  • Using Flash to faciliate the process. Most notably SWFUpload is very popular. All things being equal, I'd probably go with the Javascript solution over this, but I've used this in the past with success. The cool thing about this solution is that it comes with a nicer interface such as loading indicators and thumbnails and such. At this point, though, you're asking for a user to have Flash + Javascript available, which may not work in some situations.
  • Using Silverlight instead of Flash, although I wouldn't really consider this as a viable solution, as it has a much lower penetration rate than the other two solutions.
like image 53
Paolo Bergantino Avatar answered Dec 21 '22 21:12

Paolo Bergantino


While you can't upload a file via AJAX, you can put a file control in a popup and then update the page that spawned the popup when it closes.

I'm not too clear on how to update the page that spawned the popup, but I've seen it done in the ANGEL Learning Management Suite.

like image 27
Powerlord Avatar answered Dec 21 '22 23:12

Powerlord