DnD for ulpoad
подтолкните в какую сторону копать.
задача такая. есть форма для upload <form method="post" action="<%=request.getContextPath()%>/upload" enctype="multipart/form-data"> надо добавить элемент по типу textarea и при перетаскивании на него файла, она берет из него адрес. |
Это Вам в сторону SWF или Java. (Ява и сваскрипт не одно и то же, Вы же об этом помните? ;))
|
|
Цитата:
subzey. как вы себе это представляете. сервер написан на java. а что на клиенте можно сделать явой. только построить странички. край еще можно использовать апплет, но это идея уже реализована и она не лучший вариант. |
теперь проблемы с самой реализацией.
взял код из примера. добавил вот так 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); } } падает с ошибкой что не правильный заходящий поток. |
Часовой пояс GMT +3, время: 11:03. |