Тема: DnD for ulpoad
Показать сообщение отдельно
  #5 (permalink)  
Старый 20.04.2010, 11:58
Аватар для Петр
Интересующийся
Отправить личное сообщение для Петр Посмотреть профиль Найти все сообщения от Петр
 
Регистрация: 27.04.2009
Сообщений: 23

теперь проблемы с самой реализацией.
взял код из примера.
добавил вот так
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);
            }
        }

падает с ошибкой что не правильный заходящий поток.
Ответить с цитированием