Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузка файла на сервер, AJAX 
:(
    Опции темы
efm
Дата 29.9.2006, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 29.9.2006

Репутация: нет
Всего: нет



Необходимо на сервер без перезагрузки страницы загрузить файл.

то что у меня вышло работает только для текстовой информации, с картинкой же даже на сервер не передает, то что в интернете вычитал все как-то не удается прикрутить к своему.

Код

function doLoadpost(url, data) 
{                   
    var request;
    if (window.XMLHttpRequest) 
  {
      request = new XMLHttpRequest();          
      request.open("POST", url, false);
      //request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
      request.setRequestHeader("Content-Type","multipart/form-data");      
    
      var data = '-----------------------------265001916915724\r';
      data += 'Content-Disposition: form-data; name="small_pic"; filename="1.JPG"\r';
      data += 'Content-Type: image/jpg\r\r';
      data += '-----------------------------18756118404966--';
    
      request.send(data);
    } 
}


вот в этом случае данные не передаются. Может кто сталкивался с подобным???
PM MAIL   Вверх
skyboy
Дата 29.9.2006, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 10
Всего: 260



а если невидимая форма на невидимом фрейме с невидимым полем типа File?
PM MAIL   Вверх
efm
Дата 29.9.2006, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 29.9.2006

Репутация: нет
Всего: нет



хотелось бы все же аяксом...
PM MAIL   Вверх
pythonwin
Дата 29.9.2006, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 1
Всего: 36



у меня была такая проблема - помучился и   бросил AJAX. smile
Хотя идея хорошая! smile
PM WWW GTalk Jabber   Вверх
vasac
Дата 29.9.2006, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 13
Всего: 36



efm, а ты видел в интернете отсылку локального файла через ajax? Покажи где? Непривилегированный сценарий не может отсылать файлы без ведома пользователя.
Наиболее реальный способ — сделать у формы с файлом target на скрытый iframe.
PM WWW   Вверх
efm
Дата 29.9.2006, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 29.9.2006

Репутация: нет
Всего: нет



зайди на gmail.ru или на mail.ru и попробуй файл к письму прикрепить

...в интернете примеры есть такого, но для начинающего сложноваты для понимания

Добавлено @ 11:18 
Цитата(vasac @ 29.9.2006,  11:13)
Непривилегированный сценарий не может отсылать файлы без ведома пользователя.

без пользователя к тому же никто и не отсылается....все делает сам пользователь, но страница не перегружается
PM MAIL   Вверх
pythonwin
Дата 29.9.2006, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 1
Всего: 36



Цитата(efm @  29.9.2006,  18:15 Найти цитируемый пост)
зайди на gmail.ru или на mail.ru и попробуй файл к письму прикрепить

насколько помню когда прикрепляешь файл к письму в mail.ru, то страница перезегружается smile
PM WWW GTalk Jabber   Вверх
Tony
Дата 29.9.2006, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

Репутация: 1
Всего: 12



SAmomu skoro pridjotsja pisat'.Vot nashol.Pravda ne probival.
Код

<html>
<body>
<script>
var url = "post.php";
var binary;
var filename;
var mytext;

function upload() {
    filename = document.getElementById('myfile').value;
    mytext = document.getElementById('mytext').value;
    document.getElementById('ajaxbutton').disabled = true;

    // request local file read permission
    try {
        netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
    } catch (e) {
        alert("Permission to read file was denied.");
    }
    
    // open the local file
    var file = Components.classes["@mozilla.org/file/local;1"]
        .createInstance(Components.interfaces.nsILocalFile);
    file.initWithPath( filename );        
    stream = Components.classes["@mozilla.org/network/file-input-stream;1"]
        .createInstance(Components.interfaces.nsIFileInputStream);
    stream.init(file,    0x01, 00004, null);
    var bstream =  Components.classes["@mozilla.org/network/buffered-input-stream;1"]
        .getService();
    bstream.QueryInterface(Components.interfaces.nsIBufferedInputStream);
    bstream.init(stream, 1000);
    bstream.QueryInterface(Components.interfaces.nsIInputStream);
    binary = Components.classes["@mozilla.org/binaryinputstream;1"]
        .createInstance(Components.interfaces.nsIBinaryInputStream);
    binary.setInputStream (stream);

    // start AJAX file upload in 1 second
    window.setTimeout("ajax_upload()", 1000);
}

function ajax_upload() {
    // request more permissions
    try {
        netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
    } catch (e) {
        alert("Permission to read file was denied.");
    }

    http_request = false;
    http_request = new XMLHttpRequest();
    if (!http_request) {
        alert('Cannot create XMLHTTP instance');
        return false;
    }

    // prepare the MIME POST data
    var boundaryString = 'capitano';
    var boundary = '--' + boundaryString;
    var requestbody = boundary + '\n' 
    + 'Content-Disposition: form-data; name="mytext"' + '\n' 
    + '\n' 
    + mytext + '\n' 
    + '\n' 
    + boundary + '\n' 
    + 'Content-Disposition: form-data; name="myfile"; filename="' 
        + filename + '"' + '\n' 
    + 'Content-Type: application/octet-stream' + '\n' 
    + '\n'
    + escape(binary.readBytes(binary.available()))
    + '\n'
    + boundary;

    document.getElementById('sizespan').innerHTML = 
        "requestbody.length=" + requestbody.length;
    
    // do the AJAX request
    http_request.onreadystatechange = requestdone;
    http_request.open('POST', url, true);
    http_request.setRequestHeader("Content-type", "multipart/form-data; \
        boundary=\"" + boundaryString + "\"");
    http_request.setRequestHeader("Connection", "close");
    http_request.setRequestHeader("Content-length", requestbody.length);
    http_request.send(requestbody);

}

function requestdone() {
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
            result = http_request.responseText;
            document.getElementById('myspan').innerHTML = result;            
        } else {
            alert('There was a problem with the request.');
        }
        document.getElementById('ajaxbutton').disabled = false;
    }
}

</script>

<form>
Text: <input type="text" id="mytext" name="mytext" size="40">
<br>
File: <input type="file" id="myfile" name="datafile" size="40"><br>
<input type="button" id="ajaxbutton" value="AJAX IT" onclick="upload();">
</form>

<div id="sizespan"></div>
<hr>
<div id="myspan"></div>

</body>
</html>



--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
efm
Дата 29.9.2006, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 29.9.2006

Репутация: нет
Всего: нет



Цитата(pythonwin @ 29.9.2006,  11:21)
Цитата(efm @  29.9.2006,  18:15 Найти цитируемый пост)
зайди на gmail.ru или на mail.ru и попробуй файл к письму прикрепить

насколько помню когда прикрепляешь файл к письму в mail.ru, то страница перезегружается smile

ну а ты попробуй еще раз)))) 
на майле сейчас бета версия почты крутится-тестируют.
выглядит красиво
PM MAIL   Вверх
pythonwin
Дата 29.9.2006, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 1
Всего: 36



Цитата(efm @  29.9.2006,  18:24 Найти цитируемый пост)

ну а ты попробуй еще раз)))) 
на майле сейчас бета версия почты крутится-тестируют.
выглядит красиво 

сейчас попробовал, но всё равно перезагружается или как минимум перерисовывается smile
PM WWW GTalk Jabber   Вверх
efm
Дата 29.9.2006, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 29.9.2006

Репутация: нет
Всего: нет



Цитата(pythonwin @ 29.9.2006,  11:30)
Цитата(efm @  29.9.2006,  18:24 Найти цитируемый пост)

ну а ты попробуй еще раз)))) 
на майле сейчас бета версия почты крутится-тестируют.
выглядит красиво 

сейчас попробовал, но всё равно перезагружается или как минимум перерисовывается smile

зайди на pro.mail.ru ))
PM MAIL   Вверх
pythonwin
Дата 29.9.2006, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 1
Всего: 36



Цитата(efm @  29.9.2006,  19:12 Найти цитируемый пост)
зайди на pro.mail.ru )) 

спасибо!
PM WWW GTalk Jabber   Вверх
efm
Дата 29.9.2006, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 29.9.2006

Репутация: нет
Всего: нет



Цитата(Tony @ 29.9.2006,  11:21)
SAmomu skoro pridjotsja pisat'.Vot nashol.Pravda ne probival.

ругается на строку:

netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
PM MAIL   Вверх
vasac
Дата 29.9.2006, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 13
Всего: 36



Цитата(efm @  29.9.2006,  11:15 Найти цитируемый пост)
без пользователя к тому же никто и не отсылается....все делает сам пользователь, но страница не перегружается 

1. На mail.ru страница все-таки перезагружается. Т.е. вообще исчезает дочернее окно.
2. Форма с таргетом на скрытый ифрейм и не будет перезагружать окно. Она будет перезагружать этот ифрейм.

PM WWW   Вверх
Tony
  Дата 29.9.2006, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

Репутация: 1
Всего: 12



hotja v nete ja videl ajax progressbar file upload  smile 


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0673 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.