AJAX & $_FILES

ShVad

JSmart CMS
AJAX & $_FILES

Привет

Как через JS скрипт можно передать файл?

function upload()
{
var ajax = new dle_ajax();
var name = ajax.encodeVAR( document.getElementById('attachment').value );
ajax.onShow ('Загрузка файла...');
var varsString = "attachment=" + name;
ajax.requestFile = dle_root + "engine/forum/ajax/attachment.php";
ajax.method = 'POST';
ajax.element = 'forum-attachment';
ajax.sendAJAX(varsString);

return false;
};

Этот код передает текст. Но $_FILES не передается.

Может надо както задать enctype = 'multipart/form-data'; ?

Спасибо.
 

Beavis

Banned
это типа заходишь на какой нибудь сайт а твои файлы сливаются на чужой сервак?)
 

phprus

Moderator
Команда форума
ShVad
Загрузка файлов без перезагрузки страницы реализована в библиотеке JsHttpRequest. Для загрузки файлов в ней используется скрытый iframe, так что ты можеш посмотреть как через iframe можно загружать файлы.
 

ShVad

JSmart CMS
Я не совсем понимаю...
Какой JS код надо использовать для передачи файла в исполняющий скрипт?
 

ShVad

JSmart CMS
<form enctype="multipart/form-data">
<input type="file" name="attachment" id="somefile">
<input type="button" onclick="upload()" value="Загрузить">
</form>

upload() это JS с кодом: somefile: document.getElementById("somefile");

Поправьте если не так
 

ShVad

JSmart CMS
нет не шутка
Я не понимаю JS
Поправь как надо?

JsHttpRequest надо хранить на сервере будет?
 

Фанат

oncle terrible
Команда форума
ну раз не понимаешь - то и не парься с аяксом!
блин, вот я самолет водить не умею - так и не лезу, почему-то, в кабину пилота!
и с аяксом я "на вы". поэтому файлы загружаю обычным порядком. и НИ РАЗУ еще никаких проблем не было оттого, что файл уехал на сервер с перезагрузкой страницы.
делай, как умеешь, и не парь мозг ни себе, ни людям.
JsHttpRequest надо хранить на сервере будет?
ответ на этот вопрос надо читать в документации по JsHttpRequest
 

ShVad

JSmart CMS
у меня на форуме добавление и редактирование сообщений через AJAX.
Хочу сделать прикрепление файлов к теме. (как в IPB)
 

Фанат

oncle terrible
Команда форума
что значит - "у меня на форуме"? ты сам писал форум с аяксом, что ли? и после этого говоришь, что яваскрипт не знаешь?
 

ShVad

JSmart CMS
Да сам писал форум для CMS DLE.
Форум называется DLE Forum.

Я там использовал стандартный класс от CMS (он не поддерживает загрузгу файлов)
 

Гравицапа

elbirret elcno
ShVad
Мне вот интересно, тут по ссылкам вообще не принято ходить и читать что там написано, или тебе одному лень?
 

ShVad

JSmart CMS
Я посмотрел.
Как я понял там очень много кода надо.?

Еще вроде через Iframe можно сделать?
 

Фанат

oncle terrible
Команда форума
ShVad
можно было бы, если бы не существующий у тебя вариант, когда у тебя уже отправляется сообщение, и ты хочешь к этому сообщению прикручивать файл.
 

ShVad

JSmart CMS
Я хочу сделать добавку так:
Написал сообщение
Внизу поле для файла
Грузишь файлы
Кликаешь на них и в сообщение вставляется [attachment=ИД]

Потом отправляешь сообщение. Там уже не сложно обработать [attachment=
 
Сверху