Safari, Chrome을 위한 HTML5 호환성 추가

git-svn-id: http://xe-core.googlecode.com/svn/sandbox@7901 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
taggon 2010-11-25 05:11:27 +00:00
parent 6cf633ea4f
commit 3b955443ee

View file

@ -350,11 +350,14 @@ runtimes.html5 = {
(function uploadNext() { (function uploadNext() {
var file = files.shift(); var file = files.shift();
var req = uploader.request = new XMLHttpRequest(); var req = uploader.request = new XMLHttpRequest();
var data = '';
var bndr = '--------------xe-boundary'+random(); var bndr = '--------------xe-boundary'+random();
var bin = file.object.getAsBinary(); var compatFF, data, bin, gap = 0;
var gap = 0;
// Firefox compatible mode
compatFF = typeof(file.object.getAsBinary) == 'function';
if (compatFF) {
data = '';
$.each(settings.params, function(key, val) { $.each(settings.params, function(key, val) {
data += '--'+bndr+'\r\n'; data += '--'+bndr+'\r\n';
data += 'Content-Disposition: form-data; name="'+key+'"\r\n\r\n'; data += 'Content-Disposition: form-data; name="'+key+'"\r\n\r\n';
@ -370,6 +373,13 @@ runtimes.html5 = {
bin = null; bin = null;
gap = data.length - file.object.fileSize; gap = data.length - file.object.fileSize;
} else {
data = new FormData();
$.each(settings.params, function(key, val) {
data.append(key, val);
});
data.append('Filedata', file.object);
}
uploader.cast('ON_STARTONE', [file]); uploader.cast('ON_STARTONE', [file]);
@ -417,10 +427,12 @@ runtimes.html5 = {
} }
req.open('POST', settings.url); req.open('POST', settings.url);
if (compatFF) {
req.setRequestHeader('Content-Type', 'multipart/form-data; boundary='+bndr); req.setRequestHeader('Content-Type', 'multipart/form-data; boundary='+bndr);
req.sendAsBinary(data);
if (req.sendAsBinary) req.sendAsBinary(data); } else {
else req.send(data); req.send(data);
}
})(); })();
}, },
stop : function(uploader, settings) { stop : function(uploader, settings) {