Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   DnD for ulpoad (https://javascript.ru/forum/misc/8896-dnd-ulpoad.html)

Петр 19.04.2010 19:27

DnD for ulpoad
 
подтолкните в какую сторону копать.
задача такая. есть форма для upload
<form method="post" action="<%=request.getContextPath()%>/upload" enctype="multipart/form-data">
надо добавить элемент по типу textarea и при перетаскивании на него файла, она берет из него адрес.

subzey 19.04.2010 19:41

Это Вам в сторону SWF или Java. (Ява и сваскрипт не одно и то же, Вы же об этом помните? ;))

B@rmaley.e><e 19.04.2010 21:27

http://javascript.ru/blog/Brmaley.ee/FileAPI

Петр 20.04.2010 10:29

Цитата:

Сообщение от B@rmaley.e><e (Сообщение 52176)

Спс, то что надо.

subzey. как вы себе это представляете. сервер написан на java. а что на клиенте можно сделать явой. только построить странички. край еще можно использовать апплет, но это идея уже реализована и она не лучший вариант.

Петр 20.04.2010 11:58

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