simple file uploader?

Dear Lazyweb, do you have a suggestion for a simple file uploader with a progress bar?

There seem to be a zillion of them out there and they are all insanely complicated Flash monstrosities that require 30 other things to be installed first.

Which one doesn't suck?

I want it to just take the file and dump it in a directory on the server. Progress bar required. Drag-and-drop would be nice. Multiple files at once would be nice.

Tags: , ,

25 Responses:

  1. John Adams says:

    Take my code from the Hubba app, it's great.

    • though I haven't tried it myself, but it would be the first thing I try if I shared your need.

      • jwz says:

        "I haven't tried it myself" equals *plonk*.

        • Aquarion says:

          I have tried it myself.

          Interface is great, imports from hard drive or facebook or whereever your files are. Uploads your files to their serversor to an Amazon S3 bucket of your choice and sends you back a URL. While on their servers you can do some URL-based transitions ($url/resize/300/500 to get a smaller one and stuff).

          Main way it doesn't fit your requirements is not transfering to your own server by default, you'd need to run something afterwards to grab it,

  2. Brian B says:

    I've had good results with FileZilla the few times I've used it.

  3. trevor says:

    I've had decent luck with this:

    https://github.com/blueimp/jQuery-File-Upload

    • John Morton says:

      Seconded. Enraged by the lack of pre-packaged anonymous FTP replacements, I settled on this as the least worst place to start. Needed a bit of work to adapt it to that use case — saving files out of the web server tree, preventing previews and links back to the file uploaded — but it wasn't too painful.

  4. Please alert me if you get a good answer to this.

  5. John Adams says:

    This is what i am using on hubba, it is awesome. http://blueimp.github.io/jQuery-File-Upload/

  6. Ian says:

    Derp. I could totally finish reading the thread, too.

  7. bode says:

    I used this one once. It worked:

    http://www.ibm.com/developerworks/library/os-php-v525/

    Ancient. It has no nice shit. But it does the job, without flash.

  8. Nate says:

    We use plupload at work. It does use Flash, but also HTML5 and even regular form uploads. It wasn't acceptable security-wise to give our data to filepicker.io just to have them give it back. Code is GPL if that matters to you.

    http://plupload.com/

  9. pvg says:

    https://github.com/blueimp/jQuery-File-Upload

    Have used, but not in some time - it does seem to continue to be actively maintained, though.

  10. dermot says:

    Has anyone tried this new jQuery File Uploaderous pervert?

    • jwz says:

      If you mean the one that Ian and pvg linked above, I poked at it, and it works, but it ends up creating insanely long path names and exposing dozens of subdirectories and files to the outside world, which is A) ugly and B) makes me fearful of what manner of exploits might lurk therein.

      E.g., when you upload a file it ends up in .../server/php/files/ and is re-downloadable by anybody. Uploads should be write-only and not listable. Also it embeds HTTP AUTH user names in the URLs it generates, which is insane. And there's no easy way that I see to add a text field saying "please say who you are so I know who this file is from". And and and.

      So basically if I were to use this I think I'd end up rewriting half of it first, which sucks.

      • dermot says:

        You may have to do some progressbar coding, but that seems easy enuf:
        http://commons.apache.org/proper/commons-fileupload

        (you probably poopoo'd this already)
        :)

        • jwz says:

          I saw it but discounted it when I got 3 pages into the documentation and still couldn't tell how it worked or how to install it. What the hell is a "servlet"? Is this some Java bullshit?

      • pvg says:

        Oh! So I assumed the vat of suck you were trying to avoid was the clientside bit. The serverside code I think is mostly their demo and mostly for throwing away. You can provide your own upload/form handler which stuffs the file wherever you want it. In the PHP case that's very little code, just a standard file upload form handler - nonzero but a lot less than rewriting half or any portion of the thing. Their docs are all over the place - what the the expected return of the formhandler is at:

        https://github.com/blueimp/jQuery-File-Upload/wiki/Setup#using-jquery-file-upload-ui-version-with-a-custom-server-side-upload-handler

        (I think most of these can be empty, like in their basic demo)

        Doc on adding an additional field to the form:
        https://github.com/blueimp/jQuery-File-Upload/wiki/How-to-submit-additional-form-data

        • jwz says:

          Ugh, this is the most convoluted, opaque thing I've seen in ... weeks.

          Are there any simple, sane examples, stripped down without all the blinkenlights so that I can figure out how the fuck it actually works?

          • pvg says:

            I suppose you could make one. Take their distribution, toss everything out except basic.html and the img, js and css directories. Get

            http://www.php.net/manual/en/features.file-upload.post-method.php

            Example #2 and massage to taste, put on your php-capable server. Change line 113 in basic.html to point at your php code. It doesn't really even have to return anything intelligible but if you want it to, you can grab whatever comes back in the 'done' XHR handler in basic.html, at line 119. And that's pretty much it - all the magical features still work - progress, multi file select, drag and drop but the serverside code does whatever you want it to do without any external dependencies and 'delete url' weirdness.