AJAX отправка файла. Как отправить файл с помощью Ajax? Как отправить файл на javascript?
Как отправить файл на сервер через Ajax?
Как отправить файлы через скрытый фрейм iframe?
Для начала нужно поместить на сайте форму отправки файла.
Т.е. поместить кнопку обзор чтобы можно было выбрать файл для отправки.
<form id="test_form" method="post" enctype="multipart/form-data" onSubmit="">
<input class="file_form" type="file" name="upload_file" />
</form><br />
<div id="result">Тут будет статус загрузки</div><br /><br />
<div onclick="SendFile();">Отправить файл через Ajax</div><br />
Как видите в форме нет кнопки Отправить.
У формы обязательно должен быть id, в нашем случае id="test_form".
Отлично, все готово.
Теперь осталось только отправить файл.
Для отправки файла подключите к своему сайту перед тегом ScriptJava фреймворк, добавив вот такой код:
<script type="text/javascript" src="http://scriptjava.net/source/scriptjava/scriptjava.js"></script>
Теперь нужно прописать код который будет отправлять файл на сервер через Ajax.
Пишем функцию отправки файла на сервер без перезагрузки страницы:
<script type="text/javascript">
function SendFile() {
//отправка файла на сервер
$$f({
formid:'test_form',//id формы
url:'ajax.php',//адрес на серверный скрипт который будет принимать файл
onstart:function () {//действие при начале загрузки файла
$$('result','начинаю отправку файла');//в элемент с id="result" выводим результат
},
onsend:function () {//действие по окончании загрузки файла
$$('result',$$('result').innerHTML+'<br />файл успешно загружен');//в элемент с id="result" выводим результат
}
});
}
</script>
При нажатии на что либо нужно вызвать функцию которая будет отвечать за отправку файла через Ajax:
SendFile();
Как получать ответ от файла ajax.php
Содержимое файла ajax.php
<?php
if($_FILES['upload_file']['size']>0) {
echo'
<script type="text/javascript">
var elm=parent.window.document.getElementById("result");
elm.innerHTML=elm.innerHTML+"<br />Получен файл '.$_FILES['upload_file']['name'].' размером '.$_FILES['upload_file']['size'].' байт";
</script>
';
}
?>
Как видите все очень просто и отправить файл через javascript на сервер можно
|
Не работает ответ с сервера. Подозреваю потому что адрес странички с которой отправляется запрос выглядит так .../blog/index.php?action=post
Плиз хелп!
Все прекрасно работает.
Один раз глюкануло, но там я перепуталне правильно форму изобразил.
Делал гесту на scriptjava так вообще летает.
Хорошо, инфа о файле выводится. А где сам копируемый файл?)
В папке с кодом пусто, проверил на пару уровней выше - тоже ничего. Куда же он копируется и копируется ли вообще?
"А был ли мальчик?" (с)
а для этого ты должен после копирования его перенести с помощью php потому как он копируется во временную папку в данном примере и сразу удаляется как заканчивает работу php код
вообще то это считается само собой разумеющимся
и вот тут об этом написано
http://www.php.su/phphttp/?uploads
если не считать того что $_FILES['uploadfile'] на самом деле $_FILES['upload_file'], то весьма полезная статья. Минус пол часа от жизни -_-
Все понятно.. используйте плагин и будет все работать.
А нет описания решения без плагина, из 10-20 строк кода, что бы все равно работало?
попытался подключить скрипт. при нажатии на кнопку выдает ошибку.
помогите разобраться пожалуйста
Uncaught TypeError: Cannot set property '$$' of null scriptjava.js:32
А можно выложить исходники!
Добрый день.
Технология AJAX в свое сути достаточно проста - обрабатываем форму, готовим post или get данные и отправляем серверу.
Посмотрев как передаются файлы обычным методом (), то становится ясно, что файл передается file=(содержимое файла), где file - имя .
Вопрос в том, как подготовить post данные для отправки файла на сервер?
В интернете ходит много рецептов - возьмите эту библиотеку, возьмите ту...
На вашем сайте я почерпнул много полезной информации. Подскажите саму суть отправки файлов - как получить содержимое файла для передачи на сервер?
В том то и дело, что никак не получить. Только отправить через форму. Поэтому плагины и нужны: они создают форму и отправляют её в скрытом режиме (через iframe, например)
А можно ли как-то усовершенствовать плагин, чтобы была возможность с сервера передавать данные на клиент, например о том, что превышен размер файла?
а как кроме файла передать еще-какие-нибудь данные?
а как прочесть json-ответ в onsend:function ()?
вот так я смогла отдать ответ:
response.getWriter().print("parent.aflerLoad('"+jAns+"');");
response.getWriter().print("parent.aflerFileLoad('"+jAns+"');");
спасибо автору
как ответ с сервера вставить в div по его id
как обработать ответ с сервера???
тормоз я, не увидел сначало
А как отправить файл на другой сервер? Например, форма лежит прямо на компьютере, а файл-обработчик php - на site.com?
Никак не пойму в чем дело.
Но при загрузке изображений через аджакс функции getimagesize, imagecreatefromjpeg, imagecreatefrompng и imagecreatefromgif не работают, хотя без аджакса все нормально работало.
getimagesize($_FILES['uploadfile']['tmp_name'][$key]) не возвращает данных загруженного изображения.
Помогите если пожалуйста
не стоит так делать _$$.$s.randnum(0,1000000);
Добрый день,
как помимо файла передать еще какие-нибудь данные?
присоединяюсь к предыдущему коментарию
как отправить кроме файла сразу еще одно значение, чтобы можно было в пхп скрипте поменять имя загружаемого файла?
да а как помимо картинки передать еще какие то данные? так ни кто и не придумал
что остается только еще один запрос делать?
неужели нельзя как то все в один запрос запихать?
Thank you and waiting for your new post word counter like it!
I found a lot of interest in your post. I also want to talk more about the topics that this article covers. I will return to the article in the future.
io games
skribbl io
I found a lot of interest in your post. I also want to talk more about the topics that this article covers. I will return to the article in the future.
io games
skribbl io
Roksa rzgów
Roksa masaże krakow
Hello everyone, my name is Tonny Pham today I would like to introduce to everyone the game it saved my soul during the complicated development of COVID-19 and I had to be alone at home for a long time. up to 4 months it's Friday Night Funkin game. I found out about the FNF game because a friend introduced it to be a very interesting rhythm music game and it is an excellent entertainment game that you should try.
Five Nights At Freddy's is the best role-playing horror game in the world at the moment. With FNAF 1 game has many levels to play and is still updated by the developer with new levels. With each game, there is a separate story to overcome those levels, you need to collect all the information from the camera system and the plot to win.
Thank you for your post. I have read through several similar topics! However, your article gave me a very special impression, unlike other articles. I hope you continue to have valuable articles like this or more to share with everyone! nytimes crossword
I came upon your article when looking for any comparable material on blog search... It's an excellent article. Please keep redactle publishing and updating the information.
Отправить комментарий
Приветствуются комментарии:Для остальных вопросов и обсуждений есть форум.