Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как передать файл AJAX обработчику? (Сложный вопрос)
 
 автор: Doorgen   (05.05.2010 в 11:08)   письмо автору
 
 

Есть форма, через нее нужно передать файл в AJAX обработчик.
При передаче, файл получает какой то непонятный адрес, а мне нужно что бы при передаче он оставался $_FILES['edit_img_logo']['tmp_name']; Для дальнейших с ним манипуляций.

<form enctype="multipart/form-data" name="edit_img_logo">
<input name="file" type="file">
<input type="submit" value="Сохранить" onclick="edit_logo(document.forms['edit_img_logo'].file.value); return false;">
</form>

  Ответить  
 
 автор: sim5   (05.05.2010 в 11:43)   письмо автору
 
   для: Doorgen   (05.05.2010 в 11:08)
 

Действительно, сложный вопрос. $_FILES['edit_img_logo']['tmp_name'] никакого отношения не имеет ни к Ajax, ни к клиенту, а уж тем более это не адрес. Это переменная суперглобального массива $_FILES, которая имеет место быть только на сервере, и только при удачной загрузке файла на сервер. И в вашем случае будет $_FILES['file']['tmp_name'] - имя формы серверу не нужно.

  Ответить  
 
 автор: Doorgen   (06.05.2010 в 10:00)   письмо автору
 
   для: sim5   (05.05.2010 в 11:43)
 

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

Пример того как мне надо передать:


<html>
<head>
<script type="text/javascript">
function showUser(str)
{
if (str=="")
  {
  document.getElementById("txtHint").innerHTML="";
  return;
  } 
if (window.XMLHttpRequest)
  {xmlhttp=new XMLHttpRequest();}
else
  {xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {document.getElementById("txtHint").innerHTML=xmlhttp.responseText;}
  }
xmlhttp.open("GET","getuser.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>

<form enctype="multipart/form-data" name="edit_img_logo"> 
<input name="file" type="file"> 
<input type="submit" value="Сохранить" onclick="showUser(document.forms['edit_img_logo'].file.value); return false;"> 
</form>

<div id="txtHint"><b>Person info will be listed here.</b></div>
</body>
</html>


Может переменую как то надо обработать перед тем как отдавать ее событию, вообщем голова аж лопается... Но ведь должно же быть решение

  Ответить  
 
 автор: sim5   (06.05.2010 в 10:16)   письмо автору
 
   для: Doorgen   (06.05.2010 в 10:00)
 

Решение чего? В мануал РНР - читать и изучать загрузку файлов на сервер. Вот пока не научитесь это делать, пока не поймете, что это такое, даже и не суйтесь в Ajax.

  Ответить  
 
 автор: Doorgen   (06.05.2010 в 10:25)   письмо автору
 
   для: sim5   (06.05.2010 в 10:16)
 

С загрузкой файлов пробем ни каких нет...

А на AJAX написано все приложение... и просто было крайне не карсиво если какой то элемент пришлось делать без него...

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования