UPLOAD mixed

  • Автор темы Автор темы igp
  • Дата начала Дата начала

igp

Новичок
UPLOAD mixed

Необходимо сделать upload файла (input type="file") вместе с вводом нескольких input (type="text") и textarea.

Проблема в том, что при сабмите получается, что текстовые поля доступны, а файл не аплоадится, т.е. при распечатке, например, print_r($_FILES) выдает "Array ()".

Помогите плиз полечить...:rolleyes: или так нельзя?:(
 
Это если на форме только один аплоад...
А если еще есть поля другие - облом! :(

При обработке аплоада при обращении к переменной $_FILES['userfile']['name'] выдает неизвестный индекс userfile.
 
PHP:
        <form action="" method="post" enctype="multipart/form-data">
                <input name="book_name" type="text" id="book_name" maxlength="1000" style="width:99%" />
                <textarea name="book_desc" type="text" id="book_desc" cols="50" rows="15"></textarea>
                <input name="img_file" type="file" id="img_file" style="width:99%" />
            <input type="submit" name="book_save" id="book_save" value="Добавить">
      </form>
 
PHP:
      $book_name = $_POST["book_name"];
      $book_desc = $_POST["book_desc"];
      $book_date = $_POST["book_date"];
      $foto_fl   = $_FILES["img_file"]["name"];
      if (is_uploaded_file($_FILES["img_file"]["tmp_name"]))
      {
        move_uploaded_file($_FILES["img_file"]["tmp_name"], "./images/user/books/$timestamp$foto_fl");
        chmod("./images/user/books/$timestamp$foto_fl",0666);
        $query = "insert into books (book_name, book_description, book_date, book_image) values ('$book_name', '$book_desc', '$book_date', '$timestamp$foto_fl')";
      }
       else
      {
        $query = "insert into books (book_name, book_description, book_date) values ('$book_name', '$book_desc', '$book_date')";
      };
 
где выдаёт? где остальной код?

ты даёшь несвязанные куски кода, да ещё их редактируешь по ходу.
 
igp
Глава 38. Загрузка файлов на сервер
Также следует убедиться, что в атрибутах формы вы указали enctype="multipart/form-data", в противном случае загрузка файлов на сервер выполняться не будет.
Ну вот и upload работает с таким кодом, и значение текстового поля я получаю:

Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
  <HEAD>
    <TITLE>Загрузка файлов на сервер</TITLE>
  </HEAD>
  <BODY>
<form enctype="multipart/form-data" name="form_upload" method="post" action="upload.php">
	<input name="upload_file" type="file">
	<input name="text" type="text">
	<br>
	<input type="submit" value="Загрузить на сервер">
</form>
  </BODY>
</HTML>
PHP скрипт:
PHP:
<?php
print "Начало скрипта";
$name=$_FILES['upload_file']['name'];
$type=$_FILES['upload_file']['type'];
$size=$_FILES['upload_file']['size'];
$tmp_name=$_FILES['upload_file']['tmp_name'];
$error=$_FILES['upload_file']['error'];
print "Имя принятого файла  ".$name."<br>";
print "Тип файла  ".$type."<br>";
print "Размер принятого файла  ".$size."<br>";
print "Имя временного файла  ".$tmp_name."<br>";
print "Ошибка  ".$error."<br>";
print $_POST['text']."<br>";
?>

-~{}~ 28.03.06 04:12:

igp
...<form action=""...
???? почему атрибут пустой?
 
Автор оригинала: Sam
где выдаёт? где остальной код?
ты даёшь несвязанные куски кода, да ещё их редактируешь по ходу.
А зачем остальной код? Там дальше никакого отношения к аплоаду ничего не имеет.:) А выдает на строках 4, 5 и 7.
А то что я редактирую - раньше я писал $_FILES['userfile']['name'] (для объяснения вопроса), а реально поле называется "img_file". Вот и исправлял.

-~{}~ 28.03.06 02:16:

Автор оригинала: alekciy
...<form action=""...
???? почему атрибут пустой?
Потому что обработка тем же скриптом с теми же параметрами.
 
затем что на форум ты выдал работающий код. если в логах действительно всё чисто проблема в оставшейся части.
и почитай про настройку сервера ещё по той ссылке что я тебе дал.
 
Ну вот явно имя и пропиши.
Или я так понимаю и HTML форма и скрипт, который принимает данные из этой формы, все это реализованно физически в ОДНОМ скрипте? Он и форму генерирует и полученные данные обрабатывает?
 
alekciy
Также следует убедиться, что в атрибутах формы вы указали enctype="multipart/form-data", в противном случае загрузка файлов на сервер выполняться не будет.
Указано. См. по тексту выше.

-~{}~ 28.03.06 02:25:

Автор оригинала: alekciy
Ну вот явно имя и пропиши.
Зачем?
Автор оригинала: alekciy
Или я так понимаю и HTML форма и скрипт, который принимает данные из этой формы, все это реализованно физически в ОДНОМ скрипте? Он и форму генерирует и полученные данные обрабатывает?
Да. Законом не запрещено ;)

-~{}~ 28.03.06 02:29:

затем что на форум ты выдал работающий код.
Нихт арбайтен.
если в логах действительно всё чисто проблема в оставшейся части.
и почитай про настройку сервера ещё по той ссылке что я тебе дал.
Другая часть никак к аплоаду не относится... Дальше редирект (302), а еще дальше - вывод данных.
 
igp
>Указано. См. по тексту выше.
Когда я это писал, в теме вообще сообщений не было.

>Зачем?
Это тебе нужно или мне?
Ещё лучше будет все же разделить форму и скрипт, хотя бы на то время, пока не будет установлено, в чем же проблема.
 
Помогите плиз полечить... или так нельзя?
никакой разницы в том, какие поля есть в форме, нет абсолютно.
если бы у тебя не работал аплоад файлов вовсе - тогда надо было бы смотреть настройки пхп.
если же ты, по твоим словам, не можешь отправить именно смешанную форму, то ищи у себя опечатки.
 
Сверху