через форму загружаю файл и передаю его в обработчик, но не знаю как правильно там его принять. Вот код формы:
<form enctype="multipart/form-data">
<label for="add_files">Добавить файлы:</label><input id="add_files" name="add_files" type="file" />
<input type="submit" value="Ok" />
</form>
Отправка в обработчик:
$(':submit').live('click', function(e) {
e.preventDefault();
if ($('#add_files').val()=='') {return false;}
else {
$.ajax ({
type: "POST",
url: 'add_files.php',
data: {add_files:$('#add_files').val()},
dataType: 'json',
cache: false,
success: function(data) {
if (data['error'] == true) {
alert(data['error_text']);
}
else {
alert(data['text']);
}
}
});
}
});
Сам обработчик:
if (copy($_FILES['add_files']['tmp_name'], '/files/folder'))
{
$data['error'] = true;
$data['error_text'] = 'Не удалось добавить файл. Попробуйте позднее';
echo json_encode($data);
}
else {
$data['error'] = false;
$data['text'] = 'Файл успешно добавлен';
echo json_encode($data);
}
Возвращается сообщение что файл добавлен но копирование не происходит.
print_r($_FILES['add_files']['tmp_name']) ничего не возвращает.
Подскажите пожалуйста, как здесь правильно принять файл?
Спустя 5 минут, 16 секунд (19.06.2012 - 14:51) Игорь_Vasinsky написал(а):
может потому что аяксом файлы не грузят? и у тя кося в логике скрипта? т.е. ты пишешь - если скопирован - то еррор, если нет - до всё гуд.
Спустя 14 минут, 38 секунд (19.06.2012 - 15:06) l@pteff написал(а):
а можно как-нибудь в моём случае копирнуть загруженный файл в папку и вывести сообщение без перезагрузки страницы?
Спустя 40 минут, 18 секунд (19.06.2012 - 15:46) Oyeme написал(а):
Вы не можете аяксом передать файл.
Объект XmlHttpRequest не умеет загружать файлы.Для этого создается скрытый frame,в фоновом режиме происходит загрузка.
Я рекомендую Вам плагин.
http://jquery.malsup.com/form/
Объект XmlHttpRequest не умеет загружать файлы.Для этого создается скрытый frame,в фоновом режиме происходит загрузка.
Я рекомендую Вам плагин.
http://jquery.malsup.com/form/
