From cb1682df9a071b060cc23c06f0715825f05bdc34 Mon Sep 17 00:00:00 2001 From: Julian Frumar Date: Wed, 4 Mar 2015 17:45:41 -0800 Subject: [PATCH] Change order of formData.append calls so that the file appears after any POST params. This is necessary for JS streams that process params before the file appears. --- jquery.fs.dropper.css | 4 ++-- jquery.fs.dropper.js | 8 ++++---- jquery.fs.dropper.min.css | 4 ++-- jquery.fs.dropper.min.js | 6 +++--- src/jquery.fs.dropper.js | 4 ++-- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/jquery.fs.dropper.css b/jquery.fs.dropper.css index 42523a0..3a64d02 100644 --- a/jquery.fs.dropper.css +++ b/jquery.fs.dropper.css @@ -1,9 +1,9 @@ /* - * Dropper v1.0.1 - 2014-11-25 + * Dropper v1.0.1 - 2015-03-04 * A jQuery plugin for simple drag and drop uploads. Part of the Formstone Library. * http://formstone.it/dropper/ * - * Copyright 2014 Ben Plum; MIT Licensed + * Copyright 2015 Ben Plum; MIT Licensed */ .dropper { diff --git a/jquery.fs.dropper.js b/jquery.fs.dropper.js index a72c123..60e5507 100644 --- a/jquery.fs.dropper.js +++ b/jquery.fs.dropper.js @@ -1,9 +1,9 @@ /* - * Dropper v1.0.1 - 2014-11-25 + * Dropper v1.0.1 - 2015-03-04 * A jQuery plugin for simple drag and drop uploads. Part of the Formstone Library. * http://formstone.it/dropper/ * - * Copyright 2014 Ben Plum; MIT Licensed + * Copyright 2015 Ben Plum; MIT Licensed */ ;(function ($, window) { @@ -278,14 +278,14 @@ if (!data.queue[j].started) { var formData = new FormData(); - formData.append(data.postKey, data.queue[j].file); - for (var k in data.postData) { if (data.postData.hasOwnProperty(k)) { formData.append(k, data.postData[k]); } } + formData.append(data.postKey, data.queue[j].file); + _uploadFile(data, data.queue[j], formData); } diff --git a/jquery.fs.dropper.min.css b/jquery.fs.dropper.min.css index 25f9868..98ae382 100644 --- a/jquery.fs.dropper.min.css +++ b/jquery.fs.dropper.min.css @@ -1,9 +1,9 @@ /* - * Dropper v1.0.1 - 2014-11-25 + * Dropper v1.0.1 - 2015-03-04 * A jQuery plugin for simple drag and drop uploads. Part of the Formstone Library. * http://formstone.it/dropper/ * - * Copyright 2014 Ben Plum; MIT Licensed + * Copyright 2015 Ben Plum; MIT Licensed */ .dropper{overflow:hidden}.dropper,.dropper *,.dropper :before,.dropper :after{box-sizing:border-box}.dropper-dropzone{background:#fff;border:3px dashed #ccc;border-radius:0;color:#666;cursor:pointer;font-size:14px;margin:0;padding:25px;text-align:center}.dropper.dropping .dropper-dropzone,.no-touch .dropper:hover .dropper-dropzone{background:#eee;border-color:#999;color:#333}.dropper-input{position:absolute;left:100%;opacity:0}.no-opacity .dropper-input{left:-999px} \ No newline at end of file diff --git a/jquery.fs.dropper.min.js b/jquery.fs.dropper.min.js index ff2765e..9454992 100644 --- a/jquery.fs.dropper.min.js +++ b/jquery.fs.dropper.min.js @@ -1,9 +1,9 @@ /* - * Dropper v1.0.1 - 2014-11-25 + * Dropper v1.0.1 - 2015-03-04 * A jQuery plugin for simple drag and drop uploads. Part of the Formstone Library. * http://formstone.it/dropper/ * - * Copyright 2014 Ben Plum; MIT Licensed + * Copyright 2015 Ben Plum; MIT Licensed */ -!function(a,b){"use strict";function c(b){var c=a(this);if(n){b=a.extend({},o,b);for(var e=0,f=c.length;f>e;e++)d(c.eq(e),b)}return c}function d(b,c){c=a.extend({},c,b.data("dropper-options"));var d="";d+='
',d+=c.label,d+="
",d+='1&&(d+=" multiple"),d+=">",b.addClass("dropper").append(d);var k=a.extend({$dropper:b,$input:b.find(".dropper-input"),queue:[],total:0,uploading:!1},c);b.on("click.dropper",".dropper-dropzone",k,e).on("dragenter.dropper",k,g).on("dragover.dropper",k,h).on("dragleave.dropper",k,i).on("drop.dropper",".dropper-dropzone",k,j).data("dropper",k),k.$input.on("change.dropper",k,f)}function e(a){a.stopPropagation(),a.preventDefault();var b=a.data;b.$input.trigger("click")}function f(a){a.stopPropagation(),a.preventDefault();var b=a.data,c=b.$input[0].files;c.length&&k(b,c)}function g(a){a.stopPropagation(),a.preventDefault();var b=a.data;b.$dropper.addClass("dropping")}function h(a){a.stopPropagation(),a.preventDefault();var b=a.data;b.$dropper.addClass("dropping")}function i(a){a.stopPropagation(),a.preventDefault();var b=a.data;b.$dropper.removeClass("dropping")}function j(a){a.preventDefault();var b=a.data,c=a.originalEvent.dataTransfer.files;b.$dropper.removeClass("dropping"),k(b,c)}function k(c,d){for(var e=[],f=0;f=c.maxQueue)return;f++}0===d&&(a(b).off("beforeunload.dropper"),c.uploading=!1,c.$dropper.trigger("complete.dropper"))}function m(b,c,d){c.size>=b.maxSize?(c.error=!0,b.$dropper.trigger("fileError.dropper",[c,"Too large"]),l(b)):(c.started=!0,c.transfer=a.ajax({url:b.action,data:d,type:"POST",contentType:!1,processData:!1,cache:!1,xhr:function(){var d=a.ajaxSettings.xhr();return d.upload&&d.upload.addEventListener("progress",function(a){var d=0,e=a.loaded||a.position,f=a.total;a.lengthComputable&&(d=Math.ceil(e/f*100)),b.$dropper.trigger("fileProgress.dropper",[c,d])},!1),d},beforeSend:function(){b.$dropper.trigger("fileStart.dropper",[c])},success:function(a){c.complete=!0,b.$dropper.trigger("fileComplete.dropper",[c,a]),l(b)},error:function(a,d,e){c.error=!0,b.$dropper.trigger("fileError.dropper",[c,e]),l(b)}}))}var n=b.File&&b.FileReader&&b.FileList,o={action:"",label:"Drag and drop files or click to select",maxQueue:2,maxSize:5242880,postData:{},postKey:"file"},p={defaults:function(b){return o=a.extend(o,b||{}),"object"==typeof this?a(this):!0}};a.fn.dropper=function(a){return p[a]?p[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?this:c.apply(this,arguments)},a.dropper=function(a){"defaults"===a&&p.defaults.apply(this,Array.prototype.slice.call(arguments,1))}}(jQuery,window); \ No newline at end of file +!function(a,b){"use strict";function c(b){var c=a(this);if(n){b=a.extend({},o,b);for(var e=0,f=c.length;f>e;e++)d(c.eq(e),b)}return c}function d(b,c){c=a.extend({},c,b.data("dropper-options"));var d="";d+='
',d+=c.label,d+="
",d+='1&&(d+=" multiple"),d+=">",b.addClass("dropper").append(d);var k=a.extend({$dropper:b,$input:b.find(".dropper-input"),queue:[],total:0,uploading:!1},c);b.on("click.dropper",".dropper-dropzone",k,e).on("dragenter.dropper",k,g).on("dragover.dropper",k,h).on("dragleave.dropper",k,i).on("drop.dropper",".dropper-dropzone",k,j).data("dropper",k),k.$input.on("change.dropper",k,f)}function e(a){a.stopPropagation(),a.preventDefault();var b=a.data;b.$input.trigger("click")}function f(a){a.stopPropagation(),a.preventDefault();var b=a.data,c=b.$input[0].files;c.length&&k(b,c)}function g(a){a.stopPropagation(),a.preventDefault();var b=a.data;b.$dropper.addClass("dropping")}function h(a){a.stopPropagation(),a.preventDefault();var b=a.data;b.$dropper.addClass("dropping")}function i(a){a.stopPropagation(),a.preventDefault();var b=a.data;b.$dropper.removeClass("dropping")}function j(a){a.preventDefault();var b=a.data,c=a.originalEvent.dataTransfer.files;b.$dropper.removeClass("dropping"),k(b,c)}function k(c,d){for(var e=[],f=0;f=c.maxQueue)return;f++}0===d&&(a(b).off("beforeunload.dropper"),c.uploading=!1,c.$dropper.trigger("complete.dropper"))}function m(b,c,d){c.size>=b.maxSize?(c.error=!0,b.$dropper.trigger("fileError.dropper",[c,"Too large"]),l(b)):(c.started=!0,c.transfer=a.ajax({url:b.action,data:d,type:"POST",contentType:!1,processData:!1,cache:!1,xhr:function(){var d=a.ajaxSettings.xhr();return d.upload&&d.upload.addEventListener("progress",function(a){var d=0,e=a.loaded||a.position,f=a.total;a.lengthComputable&&(d=Math.ceil(e/f*100)),b.$dropper.trigger("fileProgress.dropper",[c,d])},!1),d},beforeSend:function(){b.$dropper.trigger("fileStart.dropper",[c])},success:function(a){c.complete=!0,b.$dropper.trigger("fileComplete.dropper",[c,a]),l(b)},error:function(a,d,e){c.error=!0,b.$dropper.trigger("fileError.dropper",[c,e]),l(b)}}))}var n=b.File&&b.FileReader&&b.FileList,o={action:"",label:"Drag and drop files or click to select",maxQueue:2,maxSize:5242880,postData:{},postKey:"file"},p={defaults:function(b){return o=a.extend(o,b||{}),"object"==typeof this?a(this):!0}};a.fn.dropper=function(a){return p[a]?p[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?this:c.apply(this,arguments)},a.dropper=function(a){"defaults"===a&&p.defaults.apply(this,Array.prototype.slice.call(arguments,1))}}(jQuery,window); \ No newline at end of file diff --git a/src/jquery.fs.dropper.js b/src/jquery.fs.dropper.js index ce28abd..6f3ff0a 100644 --- a/src/jquery.fs.dropper.js +++ b/src/jquery.fs.dropper.js @@ -270,14 +270,14 @@ if (!data.queue[j].started) { var formData = new FormData(); - formData.append(data.postKey, data.queue[j].file); - for (var k in data.postData) { if (data.postData.hasOwnProperty(k)) { formData.append(k, data.postData[k]); } } + formData.append(data.postKey, data.queue[j].file); + _uploadFile(data, data.queue[j], formData); }