{
  "attachments": [],
  "comments_archived": true,
  "date": "2006-04-06T13:34:14.000Z",
  "layout": "post",
  "tags": [
    "asides"
  ],
  "title": "Upload from local file via AJAX?",
  "wordpress_id": 924,
  "wordpress_slug": "upload-from-local-file-via-ajax",
  "wordpress_url": "http://decafbad.com/blog/2006/04/06/upload-from-local-file-via-ajax",
  "year": "2006",
  "month": "04",
  "day": "06",
  "isDir": false,
  "slug": "upload-from-local-file-via-ajax",
  "type": "entry",
  "postName": "2006-04-06-upload-from-local-file-via-ajax",
  "html": "<p>So, I'm idly musing about <a href=\"http://developer.amazonwebservices.com/connect/thread.jspa?messageID=36690&amp;tstart=0#36690\">an AJAX-based S3 file manager</a> and it occurs to me:  I don't know how to do file uploads via AJAX PUT requests.  Is there any way to get access to a local file selected in an input element in a form?  That'd sure make a nice alternative to pasting data into a big textarea.</p>\n\n<div id=\"comments\" class=\"comments archived-comments\"><h3>Archived Comments</h3>\n<ul class=\"comments\">\n<li class=\"comment\" id=\"comment-221084798\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"http://www.ashleyit.com/blogs/brentashley\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=79c8870c62f9c171ac96433f1331d51c&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"http://www.ashleyit.com/blogs/brentashley\">Brent Ashley</a>\n</div>\n\n\n<p><a href=\"#comment-221084798\" class=\"permalink\"><time datetime=\"2006-04-06T15:05:02\">2006-04-06T15:05:02</time></a></p>\n</div>\n\n\n<div class=\"content\"><p>I've yet to find a way to automate an http file upload within the browser.  You can't write to the builtin file upload input element's filename.  Possibly a Flash helper would be of use - see www.aflax.org for instance.  </p>\n<p>btw - I've sent some emails to your pobox addr lately with no ack.  Either I'm a bit stinky or you're not getting them or a bit of both.</p></div>\n\n\n</li>\n<li class=\"comment\" id=\"comment-221084799\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=a0b347907bfaf05694805210ec595d6c&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"\">Martin Atkins</a>\n</div>\n\n\n<p><a href=\"#comment-221084799\" class=\"permalink\"><time datetime=\"2006-04-06T17:29:42\">2006-04-06T17:29:42</time></a></p>\n</div>\n\n\n<div class=\"content\"><p>I don't think that you can do that right now, but read-only access to the file pointed to by a file upload element sounds like a good thing to propose to the WHATWG people for inclusion in their Web Applications spec, if it isn't already there.</p>\n<p>As long as it's read-only and you can't actually <em>put</em> a filename into that box from script I don't really see any security flaw to that.</p></div>\n\n\n</li>\n<li class=\"comment\" id=\"comment-221084800\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"http://jes5199.livejournal.com\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=0f8ba0cdebc6938f4cd0601aeef21621&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"http://jes5199.livejournal.com\">Jes5199 (Jesse Wolfe)</a>\n</div>\n\n\n<p><a href=\"#comment-221084800\" class=\"permalink\"><time datetime=\"2006-04-07T23:01:40\">2006-04-07T23:01:40</time></a></p>\n</div>\n\n\n<div class=\"content\"><p>gmail is AJAXing up attachments already. I don't really know how they're pulling it off.</p></div>\n\n\n</li>\n<li class=\"comment\" id=\"comment-221084802\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"http://q-dar.com\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=068ae876f8f401b757f9c27212f20481&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"http://q-dar.com\">ayssar</a>\n</div>\n\n\n<p><a href=\"#comment-221084802\" class=\"permalink\"><time datetime=\"2006-04-08T09:38:11\">2006-04-08T09:38:11</time></a></p>\n</div>\n\n\n<div class=\"content\"><p>i'm not sure gmail is ajaxing attachments, i think they're using a clever combination of iframes and dom manipulation of the input boxes, with perhaps a javascript timer auto-triggered onsubmit().</p>\n<p>just guessing there, but i think you can see it if you have a \"view rendered source\" plugin for your browser...</p></div>\n\n\n</li>\n<li class=\"comment\" id=\"comment-221084804\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"http://www.shwango.com/blog/\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=3f3771daa40effa1355df3fae83872c6&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"http://www.shwango.com/blog/\">Pat Osterday</a>\n</div>\n\n\n<p><a href=\"#comment-221084804\" class=\"permalink\"><time datetime=\"2006-04-10T12:45:54\">2006-04-10T12:45:54</time></a></p>\n</div>\n\n\n<div class=\"content\"><p>No way to do it in a browser using the current technologies - without changing security restrictions, etc.  I did implement an \"AJAX style\" uploader using ActiveX to browse for a file, base64 encode it and then post it to the server using the XHR object - this was before \"AJAX\", but not brain surgery, of course you did have to let IE trust the site to allow the ActiveX stuff access to your hard drive - could've signed it I guess, but too much trouble for an Intranet app.  GMail is just use an auto submit when you choose a file; in IE they are using a little bit of JS to auto popup the dialog box so you don't have to have a browse button visable.  The AFLAX stuff looks interesting, though.</p></div>\n\n\n</li>\n<li class=\"comment\" id=\"comment-221084806\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=56dd4f42e8bac2343230b52b456cbde1&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"\">Fred</a>\n</div>\n\n\n<p><a href=\"#comment-221084806\" class=\"permalink\"><time datetime=\"2006-05-26T15:23:34\">2006-05-26T15:23:34</time></a></p>\n</div>\n\n\n<div class=\"content\"><p>Gmail does not use ajax to upload files. This link shows how we can upload files the way gmail does:\nhttp://blog.360.yahoo.com/blog-qCsFWG45eqF9lZ05AZldsUC.?p=58</p></div>\n\n\n</li>\n<li class=\"comment\" id=\"comment-221084807\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=e5ed50d0c93be71f755171f848a27d24&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"\">ellinas</a>\n</div>\n\n\n<p><a href=\"#comment-221084807\" class=\"permalink\"><time datetime=\"2006-07-18T18:36:02\">2006-07-18T18:36:02</time></a></p>\n</div>\n\n\n<div class=\"content\"><p>I just hit the wall with the same problem.\nMy current idea is the following:\n- Open a popunder (not to make it annoyingly visible)\n- set this window as receiver to the form\n- trigger a submit by javascript parallel to the Ajax request\n- after upload the popunder can call a jS function in the opener page that talks to the server and receives the uploaded pic for example\n- then the popunder closes itself</p>\n<p>Could this be a solution?</p></div>\n\n\n</li>\n<li class=\"comment\" id=\"comment-221084808\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"http://weblog.raganwald.com\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=5ee7534431f12e68f59badeb44492092&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"http://weblog.raganwald.com\">Reg Braithwaite</a>\n</div>\n\n\n<p><a href=\"#comment-221084808\" class=\"permalink\"><time datetime=\"2006-07-30T12:26:21\">2006-07-30T12:26:21</time></a></p>\n</div>\n\n\n<div class=\"content\"><p>ellinas:</p>\n<p>Most AJAX file upload solutions work almost exactly as you describe, however they use an invisible iFrame instead of a brand new window.</p>\n<p>For example, the upload_progress plug-in for Ruby on Rails uses this method to provide upload progress in real time.</p></div>\n\n\n</li>\n<li class=\"comment\" id=\"comment-221084809\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"http://www.seemysites.net/projFolder/uploader\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=962b02f0c914d37c4dfece85a8d9f6b7&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"http://www.seemysites.net/projFolder/uploader\">Ajax file upload</a>\n</div>\n\n\n<p><a href=\"#comment-221084809\" class=\"permalink\"><time datetime=\"2006-09-01T16:21:00\">2006-09-01T16:21:00</time></a></p>\n</div>\n\n\n<div class=\"content\"><p>The invisible IFrame works great.  I have a script that has suited me fine.  You can see it at http://www.seemysites.net/projFolder/uploader - it's completely free, too.</p></div>\n\n\n</li>\n<li class=\"comment\" id=\"comment-221084811\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"http://www.decafbad.com\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"http://www.decafbad.com\">l.m.orchard</a>\n</div>\n\n\n<p><a href=\"#comment-221084811\" class=\"permalink\"><time datetime=\"2006-09-01T17:24:25\">2006-09-01T17:24:25</time></a></p>\n</div>\n\n\n<div class=\"content\"><p>Nope, the iframe approach won't work for Amazon S3 - which is what this post is really looking for.  I'm looking for a 100% client-side solution that uses Amazon's S3 api.  So, no form post uploads, no server-side PHP helpers, just browser-to-S3 HTTP PUT.  I don't think it's presently possible.</p></div>\n\n\n</li>\n</ul>\n\n\n</div>\n\n\n",
  "body": " <p>So, I'm idly musing about <a href=\"http://developer.amazonwebservices.com/connect/thread.jspa?messageID=36690&tstart=0#36690\">an AJAX-based S3 file manager</a> and it occurs to me:  I don't know how to do file uploads via AJAX PUT requests.  Is there any way to get access to a local file selected in an input element in a form?  That'd sure make a nice alternative to pasting data into a big textarea.</p>\r\n\r\n<div id=\"comments\" class=\"comments archived-comments\">\r\n            <h3>Archived Comments</h3>\r\n            \r\n        <ul class=\"comments\">\r\n            \r\n        <li class=\"comment\" id=\"comment-221084798\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"http://www.ashleyit.com/blogs/brentashley\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=79c8870c62f9c171ac96433f1331d51c&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"http://www.ashleyit.com/blogs/brentashley\">Brent Ashley</a>\r\n                </div>\r\n                <a href=\"#comment-221084798\" class=\"permalink\"><time datetime=\"2006-04-06T15:05:02\">2006-04-06T15:05:02</time></a>\r\n            </div>\r\n            <div class=\"content\"><p>I've yet to find a way to automate an http file upload within the browser.  You can't write to the builtin file upload input element's filename.  Possibly a Flash helper would be of use - see www.aflax.org for instance.  </p>\r\n\r\n<p>btw - I've sent some emails to your pobox addr lately with no ack.  Either I'm a bit stinky or you're not getting them or a bit of both.</p></div>\r\n            \r\n        </li>\r\n    \r\n        <li class=\"comment\" id=\"comment-221084799\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=a0b347907bfaf05694805210ec595d6c&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"\">Martin Atkins</a>\r\n                </div>\r\n                <a href=\"#comment-221084799\" class=\"permalink\"><time datetime=\"2006-04-06T17:29:42\">2006-04-06T17:29:42</time></a>\r\n            </div>\r\n            <div class=\"content\"><p>I don't think that you can do that right now, but read-only access to the file pointed to by a file upload element sounds like a good thing to propose to the WHATWG people for inclusion in their Web Applications spec, if it isn't already there.</p>\r\n\r\n<p>As long as it's read-only and you can't actually <em>put</em> a filename into that box from script I don't really see any security flaw to that.</p></div>\r\n            \r\n        </li>\r\n    \r\n        <li class=\"comment\" id=\"comment-221084800\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"http://jes5199.livejournal.com\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=0f8ba0cdebc6938f4cd0601aeef21621&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"http://jes5199.livejournal.com\">Jes5199 (Jesse Wolfe)</a>\r\n                </div>\r\n                <a href=\"#comment-221084800\" class=\"permalink\"><time datetime=\"2006-04-07T23:01:40\">2006-04-07T23:01:40</time></a>\r\n            </div>\r\n            <div class=\"content\"><p>gmail is AJAXing up attachments already. I don't really know how they're pulling it off.</p></div>\r\n            \r\n        </li>\r\n    \r\n        <li class=\"comment\" id=\"comment-221084802\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"http://q-dar.com\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=068ae876f8f401b757f9c27212f20481&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"http://q-dar.com\">ayssar</a>\r\n                </div>\r\n                <a href=\"#comment-221084802\" class=\"permalink\"><time datetime=\"2006-04-08T09:38:11\">2006-04-08T09:38:11</time></a>\r\n            </div>\r\n            <div class=\"content\"><p>i'm not sure gmail is ajaxing attachments, i think they're using a clever combination of iframes and dom manipulation of the input boxes, with perhaps a javascript timer auto-triggered onsubmit().</p>\r\n\r\n<p>just guessing there, but i think you can see it if you have a \"view rendered source\" plugin for your browser...</p></div>\r\n            \r\n        </li>\r\n    \r\n        <li class=\"comment\" id=\"comment-221084804\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"http://www.shwango.com/blog/\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=3f3771daa40effa1355df3fae83872c6&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"http://www.shwango.com/blog/\">Pat Osterday</a>\r\n                </div>\r\n                <a href=\"#comment-221084804\" class=\"permalink\"><time datetime=\"2006-04-10T12:45:54\">2006-04-10T12:45:54</time></a>\r\n            </div>\r\n            <div class=\"content\"><p>No way to do it in a browser using the current technologies - without changing security restrictions, etc.  I did implement an \"AJAX style\" uploader using ActiveX to browse for a file, base64 encode it and then post it to the server using the XHR object - this was before \"AJAX\", but not brain surgery, of course you did have to let IE trust the site to allow the ActiveX stuff access to your hard drive - could've signed it I guess, but too much trouble for an Intranet app.  GMail is just use an auto submit when you choose a file; in IE they are using a little bit of JS to auto popup the dialog box so you don't have to have a browse button visable.  The AFLAX stuff looks interesting, though.</p></div>\r\n            \r\n        </li>\r\n    \r\n        <li class=\"comment\" id=\"comment-221084806\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=56dd4f42e8bac2343230b52b456cbde1&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"\">Fred</a>\r\n                </div>\r\n                <a href=\"#comment-221084806\" class=\"permalink\"><time datetime=\"2006-05-26T15:23:34\">2006-05-26T15:23:34</time></a>\r\n            </div>\r\n            <div class=\"content\"><p>Gmail does not use ajax to upload files. This link shows how we can upload files the way gmail does:\r\nhttp://blog.360.yahoo.com/blog-qCsFWG45eqF9lZ05AZldsUC.?p=58</p></div>\r\n            \r\n        </li>\r\n    \r\n        <li class=\"comment\" id=\"comment-221084807\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=e5ed50d0c93be71f755171f848a27d24&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"\">ellinas</a>\r\n                </div>\r\n                <a href=\"#comment-221084807\" class=\"permalink\"><time datetime=\"2006-07-18T18:36:02\">2006-07-18T18:36:02</time></a>\r\n            </div>\r\n            <div class=\"content\"><p>I just hit the wall with the same problem.\r\nMy current idea is the following:\r\n- Open a popunder (not to make it annoyingly visible)\r\n- set this window as receiver to the form\r\n- trigger a submit by javascript parallel to the Ajax request\r\n- after upload the popunder can call a jS function in the opener page that talks to the server and receives the uploaded pic for example\r\n- then the popunder closes itself</p>\r\n\r\n<p>Could this be a solution?</p></div>\r\n            \r\n        </li>\r\n    \r\n        <li class=\"comment\" id=\"comment-221084808\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"http://weblog.raganwald.com\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=5ee7534431f12e68f59badeb44492092&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"http://weblog.raganwald.com\">Reg Braithwaite</a>\r\n                </div>\r\n                <a href=\"#comment-221084808\" class=\"permalink\"><time datetime=\"2006-07-30T12:26:21\">2006-07-30T12:26:21</time></a>\r\n            </div>\r\n            <div class=\"content\"><p>ellinas:</p>\r\n\r\n<p>Most AJAX file upload solutions work almost exactly as you describe, however they use an invisible iFrame instead of a brand new window.</p>\r\n\r\n<p>For example, the upload_progress plug-in for Ruby on Rails uses this method to provide upload progress in real time.</p></div>\r\n            \r\n        </li>\r\n    \r\n        <li class=\"comment\" id=\"comment-221084809\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"http://www.seemysites.net/projFolder/uploader\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=962b02f0c914d37c4dfece85a8d9f6b7&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"http://www.seemysites.net/projFolder/uploader\">Ajax file upload</a>\r\n                </div>\r\n                <a href=\"#comment-221084809\" class=\"permalink\"><time datetime=\"2006-09-01T16:21:00\">2006-09-01T16:21:00</time></a>\r\n            </div>\r\n            <div class=\"content\"><p>The invisible IFrame works great.  I have a script that has suited me fine.  You can see it at http://www.seemysites.net/projFolder/uploader - it's completely free, too.</p></div>\r\n            \r\n        </li>\r\n    \r\n        <li class=\"comment\" id=\"comment-221084811\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"http://www.decafbad.com\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=2377f34a68801b861c3e54e1301f0dce&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"http://www.decafbad.com\">l.m.orchard</a>\r\n                </div>\r\n                <a href=\"#comment-221084811\" class=\"permalink\"><time datetime=\"2006-09-01T17:24:25\">2006-09-01T17:24:25</time></a>\r\n            </div>\r\n            <div class=\"content\"><p>Nope, the iframe approach won't work for Amazon S3 - which is what this post is really looking for.  I'm looking for a 100% client-side solution that uses Amazon's S3 api.  So, no form post uploads, no server-side PHP helpers, just browser-to-S3 HTTP PUT.  I don't think it's presently possible.</p></div>\r\n            \r\n        </li>\r\n    \r\n        </ul>\r\n    \r\n        </div>\r\n    ",
  "parentPath": "./content/posts/archives/2006",
  "path": "2006/04/06/upload-from-local-file-via-ajax",
  "needsBuild": true,
  "prevPostPath": "2006/04/04/s3-next-big-thing",
  "prevPostTitle": "S3: Next Big Thing?",
  "nextPostPath": "2006/04/06/private-client-side-cookies-for-ajax",
  "nextPostTitle": "Private client-side cookies for AJAX?"
}