теперь проблемы с самой реализацией.
взял код из примера.
добавил вот так
processFile = function(file){
upload('<%=request.getContextPath()%>/upload', file);
var s = '<table>', i;
mime = file.type;
if(MIMEs[mime])
mime = MIMEs[mime];
else
mime = mime.match(/[^\\\/]*/i)[0].toLowerCase();
for(i in file) s += '<tr><th>' + i+'</th><td>' + file[i] + '</td></tr>';
document.getElementById('info').innerHTML = s + '</table>';
progressBar.parentNode.className = '';
};
function upload(uploadURL, file) {
var xhr = new XMLHttpRequest();
xhr.open('POST', uploadURL, true);
if(typeof FormData == 'function'){ // правильный способ
var fData = new FormData();
fData.append('upfile', file);
xhr.send(fData);
} else if(xhr.sendAsBinary){ // пусть работает хоть как-то
var fReader = new FileReader();
fReader.addEventListener('load', function(){
var boundaryString = 'prevedmedved',
boundary = '--' + boundaryString,
requestbody = '';
requestbody += boundary + '\n'
+ 'Content-Disposition: form-data; name="upfile"; filename="' + file.name + '"' + '\n' // имя параметра — upfile
+ 'Content-Type: application/octet-stream' + '\n'
+ '\n'
+ fReader.result // бинарное содержимое файла
+ '\n'
+ boundary;
xhr.setRequestHeader("Content-type", 'multipart/form-data; boundary="' + boundaryString + '"');
xhr.setRequestHeader("Connection", "close");
xhr.setRequestHeader("Content-length", requestbody.length);
xhr.sendAsBinary(requestbody);
}, false);
fReader.readAsBinaryString(file);
}
}
падает с ошибкой что не правильный заходящий поток.