Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Filepicker.io - dead simple file uploads (filepicker.io)
193 points by tagx on Apr 19, 2012 | hide | past | web | favorite | 105 comments

I'm your target audience. I've built this exact function into client apps (upload from various sources and edit with Aviary). Its a PITA.

I'd consider yours, but there's a couple big problems right now:

    1) Doesn't support IE. 
    2) Doesn't work on mobile
There's other issues, but those are the show-stoppers.

FWIW, Chute (http://getchute.com) has a better implementation of this concept. That said, I still haven't seen enough of a value add here (with Filepicker or with Chute) to depend on yet another black box service that may shut down tomorrow.

Hi George,

Thanks for mentioning us. We definitely offer a very similar set of features with Slidechute.

I think the value add comes in many different ways, but we're just at the beginning of that process so it's not always all evident.

As for the black box, there's not a lot of Voodoo with us. Since launching we allow you to store media in your own S3 bucket and also to customize your app credentials so the authentication happens against your app.

Would love to know what features you thought would add the kind of value you need.

Hey Greg and Liyan! Those are great steps, didn't know you had done them. Helps a bit. I'd still have to replace your widget, but it would at least be possible.

I'm certainly open to brain-picking, email me anytime (in my profile).

how do you find this post? do you have google alerts set up? just curious

it's worth noting that it can't work on mobile - mobile safari does not support any kind of file uploads. But not working in IE is definitely a fatality

It's worth noting that iPhone does not equal Mobile. What about Android? Even if Chrome is the only Android browser supported, that would be plenty!

Once we get filepicker.io working on mobile browsers, sites using filepicker.io would allow users files directly from Dropbox, Facebook, etc without the iPhone directly supporting it.

And yes, we are working on IE support.

We now work on IE8+ as well as mobile safari and android

Done. Just pushed into master. We now support IE8+, Chrome (all), firefox 3+, most safari, recent opera. Also iPad, iPhone, Android

Qeorge, completely agree. Those are the two aspects that we should really nail so that others don't have to deal with it. I'll be sure to update you when I've learned more about IE and their Javascript engine then I ever wanted to know.

I'd be curious to pick your brain about what you think would add that additional value.

This is a good concept but needs a lot of work.

1. I don't want things opening in a new window on my site

2. I don't want someone else's branded module opening on my site

3. This is designed using bootstrap

If you hired a real designer, made it a script that could open a modal on my site, and gave the option to pay some small fee to get rid of your branding and give it a few color theming options, I would be totally on board.

1. Good to know. It'd be interesting to know how the community feels about windows vs iframes. We felt like windows were more analogous to system dialogs, but iframes are easier for message passing 2. Would you pay for custom branding? 3. I defer to other articles re. bootstrap. We figured if we wanted to match the styling of other sites in the best possible way, bootstrap is a decent choice

This is a good business model you guys are aiming for. I think people would definitely pay for custom branding and you're solving a current pain point! Would have used this in a couple of projects I've been involved in.

Good to know that we aren't the only ones who feel this way.

Would love to chat about what you'd use if for, if you have the time.

> We felt like windows were more analogous to system dialogs, but iframes are easier for message passing

Stop. Hire a designer.

Apologies if I missed a nuance but it would be more helpful if you explained why...? Are you saying the OP is spending too much time pontificating when they should be handing the work to a trained professional? Or are you disagreeing with what they said?

You have to read the three reasons posted above and then the explanation. The service as implemented on the backend looks good but on the front end they need some help of the professional kind.

Also, including the Aviary viewer in the demo takes away from the product.

To this comment - yes, that was what I said originally. agreed.

To the above response, if it was good enough I'd pay for custom branding for sure. Is the aviary module supposed to be part of the service? For me, that's not really a good addition. Perhaps as an option that can be enabled. If you could just give me a really nice looking modal that allowed a file upload through the ways you provided, hosted the files for me and gave me back a url, that would be enough to merit a small payment at least. I'd only include a very small branding badge at the bottom but have the option to remove that for an additional price.

We're currently looking for one

This is a nice solution, given the limitations of the various service APIs it hooks into, but I feel like it's the wrong solution to a more general problem. If I'm understanding what's happening, a user has to hand over far too much access just to transfer files. In order for me to select one file from service A and have it transmitted to service B, I have to give service C access to all my files on service A. Does anyone else not see a problem with this? It would be the equivalent of the File Upload box in Internet Explorer letting a website see my entire file system just so I can pick one file to upload. This is the kind of allow all nonsense that users let slip by with the proliferation of ActiveX controls, but now instead of arbitrary access on my local machine, I'm giving service access to my cloud storage.

We actually see it as part of the solution to the permissions problem. By acting as this universal file provider, you no longer have to give access B or D or any other applications you want to use. We allow users to consolidate who they're giving access to.

With more and more of user's content on the web, we decided it should be far easier for users to work with that content on websites. Hope you like it! It's rough, but we wanted to get feedback as we work on it.

It sounds like Imgur with an Aviary plug in attatched to it.

The only additional places you're pulling from are dropbox and facebook. Do you have plans to pull from more locations?

Also, do you have plans to allow website owners to integrate this with their own site (much like Aviary allows you to integrate the editor you're using)?

Yup, we're planning on supporting a whole bunch, including fancier things like gmail attachments, evernote, etc. Are their clients you'd like?

And yeah, you can use it on your site right now. Grab a key and you're good to go

I've wanted a service like this for a while but haven't had time to make it. A few other ways you could get photos from users:

- get a picture from their phone. This seems really important and useful, but I'm not sure the best way to do this. Ideas: 1) let them email it from their phone to a special email address 2) give them a url that takes them to a site that opens up an "upload" dialog Both of these my be accomplishable w/ a QR code

- let them paste in a URL of an image. I've used embed.ly for this. It will take all sort of urls: plain images (rare for non-technical users), Flickr URLs, etc

Hmmm, I'd want a client capable of seeking out images stored as a background image or underneath a invisible div that some site owners use to protect their image. But that's probably impossible.

Interesting, what uses were you thinking of?

Well one case would be to have a bookmarklet that lets you upload from any webpage.

As a site owner, not having to write yet another bookmarklet would be great.

So let me see if I have this straight: you differ from other file uploaders out there (e.g., https://github.com/blueimp/jQuery-File-Upload/) in that you allow "upload from anywhere", plus a quite nice interface? Not to belittle it, those are solid additions to the space.

edit: Btw, if you're looking for IE support on the from-computer upload, look into using iframes for transport.

Right. Our goal is not only to be a great uploading experience, but also to tie in all the cloud services, like Dropbox, Facebook, GMail, etc.

"Doesn't currently support Internet Explorer"

Is this considered okay again? Best Viewed in [Netscape 3.0] or [Internet Explorer]

I wouldn't say we consider it ok by any means. But we'd rather get the feedback earlier than later, so we said screw it and sent it out

I presume your limitations are due to the drag drop file handling on the upload from computer?

I did something recently like this and ended up with an ugly "Select file" button when people are in IE.

I really hope IE are pulling their fingers out with IE10, it appears they are. We are getting a load of adverts in the UK now on Microsoft products, like Bing etc. It seems to me they are taking it seriously again.

Actually the drag-drop isn't as big of a deal as cross-domain message passing. We'll likely end up having to use a flash fallback or similar, but last night as we were hacking on this we decided to punt for a day or two

It doesn't support D&D on OS X / Safari

I was actually really surprised when I discovered this when developing the bulk upload facility I did. It wasn't great when 9/10 computers in our office are Macs. Didn't make it worthwhile showing it off to people in our place!

I'm sure they will all support it soon enough and my days coding it will be worthwhile.

I don't have a problem with it. It's a MVP so the people trying it out won't be using IE either.

Except for the op?

Internal Server Error when submitting my email :(

Looks like a great service. But where do images get uploaded to? I currently run a site called Desktop.ly where users can upload a picture of their desktop. When uploaded Imagemagick is used to convert the image into different versions using the Carrierwave gem (Desktop.ly is built using the brilliant Ruby on Rails!).

How does Filepicker.io work like this, where are images stores, can this be a custom Amazon S3 or Rackspace Cloud Files storage? Can images be resized? Does/will it work with RoR to offer a seamless integration?

Plus, what happens with downtime? Of course this will be a big thing with many web services.

Hope you're able to answer my questions. Also, check out Desktop.ly ;)


Sorry about the error. We hit our outgoing email quota due to the unexpected response from all of you guys. We're working on getting that fixed.

User file uploads currently get uploaded to S3 for a short amount of time until your application can retrieve it. We don't do any processing of the files.

We plan to release SDKs in the future for easy integration, including one for RoR. We also plan to have this up all the time since heroku is pretty reliable. For those rare cases when this fails, we could revert back to a normal file picker on your page.

Also just took a break to look at desktop.ly Very interesting concept, though my desktop is a bit of a mess and probably shouldn't be shared :D

We fixed it now. Try getting an api key again :)

This is an excellent idea and it looks nicely executed, too. I only fear there may be a duplication of efforts in respect to the upcoming WebIntents framework. Do you guys have plans to integrate with it at some point?

We would love to be a webintents provider and it's on the feature list.

Part of this is also an effort to spur the webintents forward :D

Hey, intents are moving forward :) (Neat app, btw!)

Haha. No doubt. I'm on the w3c mailing list :D

To provide some more WebIntents info: https://plus.google.com/111395306401981598462/posts/Sgyt1a73...

It's a post on G+ showing WebIntents & picking files via pick intent and cloudfilepicker.com (a Picasa image picker).

Why are 4 CS geniuses from MIT using their talents to build pretty file uploading UI? Pretty file upload UI is easy!

Secondly, when building a simple fun tool to be used on websites, is a four-image team bio with MIT written in capital letters all over it necessary?

Putting images on a web page is easy, so we see images everywhere on the Web. If it were also easy, we would expect to see good file upload widgets everywhere. Good file upload widgets are not everywhere. From this, we can conclude that it is still an open problem.

Because we're tired of not being able to live entirely online, and this is one small step in that direction

I think the point is that is will support pulling files from any service you use to store them - dropbox, facebook, your computer, skydrive, etc. It's much more than a pretty file upload UI, and the fact that it looks that simple is actually its greatest achievement.

Why not? This isn't necessarily all they're doing with their time and (assumed) talent.

They've got this MBA dude who's calling himself a hustler so they'll be alright :D

The Brass Rat messes with those guys' minds.

Looks neat! However, you won't catch me putting my credit card details into that donations form. You might want to put a paypal button or something that makes me feel a bit more secure about the whole thing.

We thought it would be fun to use Stripe for something. Nothing touches our site.

I guess I don't have much money to steal; I'll look into PayPal for those lucky ones who have assets to protect :D

Considering its aimed at hackers, maybe put a "powered by stripe". That would probably reassure most people in your target market at the moment.

Though if you do end up adding a paypal button try not to use the word "donate", paypal seems to have a problem with non-charities doing this.

The donate button stays disabled if there's an error.

My biggest fear is I'll use it, and a few months later you're acquired by Facebook and then it's gone.

We can't say this for certain, but what we'd like to do it put it down in writing that if for any reason we can't provide the service anymore, we open-source it. Would this help?

It would. Having pricing plans in place, to show you want to run an actual business would also help boost that confidence.

    filepicker.getFile(mimetype, callback(url){alert(url);});
I feel dumb saying this, but I don't understand the example code. Why do I have to give Filepicker a mimetype? I would expect it to tell me what MIME type the user uploaded. Are you setting the type of file the user is allowed to upload? Can you whitelist several at once? Are you only expecting images, or does this work for PDFs, etc?

Also, is this javascript? I think 'callback' should be 'function'.

That's correct. You get to whitelist the files we allow the user to choose. The mimetype should work for things like "text/" or "" if you want multiple, but I'll look into adding something that takes a list, if that's something that you would want.

Thanks for catching that typo. We were debating if just to write 'callback' or to have a simple function that calls alert. We ended up with neither :D Fixed.

Four MIT students and this is what they decide to make?

I understand that you are trying to do a MVP, but 'does not currently work in Internet Explorer' is stretching the meaning of 'viable' a bit too far.

This tool is supposed to make developers life easier when building a file upload tool? Getting it to work in IE is the most annoying part, but this plugin is not offering any help.

We completely agree. Nailing cross browser issues, more services, and looking to mobile is what can make this valuable and, as you correctly point out, we aren't quite there yet.

We just wanted to loop the community in early to help us build a product that you all want. Thanks for the feedback :D


This is great and I would pay to use it in a second if it could handle uploads on the iphone/ipad (something like http://www.aurigma.com/iphone/). I just signed up for the developer key. Will you be emailing that list with feature updates/news? Thanks

Good to know re. mobile.

Re. email, we'll be trying to limit the number of emails we send out to the lowest possible, but if there's interest we can create a separate mailing list that's higher volume for feature announcements, etc. over the coming week.

Great I'll be following the progress. One more thing I would really need is the ability to remove and order the upload options.

Good to know. Is that something you imagine the developer being able to specify or a user setting?

Hey Liyan, I would want this as something I, as the developer, could specify. A social site might want all the options there, but for my sites I'm worried about conversion and wouldn't want the added confusion of having upload choices that my customers are rarely going to use.

FOUR people working on this? Seriously?

As with many things, there may be more than meets the eye. I'm sure these guys are putting together a lot more functionality that is not visible/ready yet.

I think this would be a lot more appealing if it were available as an open source script too.

What happens if your business disappears overnight? Do I have to completely re-implement uploading in my app?

Why can't I just drag files right into the example application without having to open the window and click "my computer"? For e.g. I can just drop file on Gmail and it attaches them.

That's a good thought as I do the same thing in GMail. I'll add it to my personal todos.

@brettcvz, you guys need to validate your email input for empty strings when signing up for a dev key. On the project note, looks very promising, keep up the good work.

Email validation in play. Thanks for pointing that out.

I like the concept and hope the team keeps exploring more. I wonder whether we can get additional information about the image - time, location, people tagged in it etc

That's good to know.

Just to be clear, would you like that information at the dialog or would you like the app developer to be able to see it?

Great concept.

However, a small nitpick : When I click "Get a key" without entering any Email, I get an Internal Server Error at /thanks/. Probably you guys should handle edge cases?

Valid point. We'll get a patch in asap.

Thanks and fixed!

I like it. It's sleek, easy to use and very well implemented. Congratulations on creating this, I will keep this in mind in case I ever need it in the future.

I'm not a js guru, and am having trouble understanding the example code. Could you post a more thorough example?

To save on copy-pasting, check out our demo app, the source for the landing page: http://filepicker.io/static/js/demo-app.js

Make sure you put the imports in too. Hope you like it, and let us know if you need a hand

Sorry for the late followup, but thanks for the link. getFile is a callback for when a file is uploaded, not a way to just get one file (I'm coming from an ActiveRecord/Ruby view of things).

Doesn't currently support Internet Explorer?! That's a deal-breaker still unfortunately.

Do you really need publish_stream and offline_access on Facebook to obtain my photos?

Those are for a set of features we have coming down the pipeline. Publish stream would allow us to save the photos back and offline access is for auth'ing just one account for access to all your files.

I completely agree with your sentiment of asking for only what you need.

I've not tried it yet, but what a cool idea! Will be sure to give it a go

i think the facebook integration is less than optimal. If my site uses facebook login, and a user is asked for facebook again on initial use with filepicker the experience would be confusing.

That's a great thought. Custom stylesheets is on the feature map, but we should also be looking into someway of reducing the facebook double login as well. Thanks for this feature idea.

An awesome Instagram... lol

Any idea of integration with CMS ? (Wordpress, Drupal ?)

Looks great, good job Thomas & team

Great stuff, keep up the good work

might wanna put SSL on the thanks/donate page

Ridonkulous. So cool.

you guys should join up with Chute and crush it together!

:-) Interesting possibility......

This is awesome!

Cool idea


Nice it's great that you used bootstrap so that if I change my bootstrap file it will change the module. Bootstrap for developer who aren't great designer has been a amazing tool. It has open my eyes to modules like this that gives my app the same feel.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact