Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Помагите пожалуйста


Автор: kikosik666 3.11.2011, 10:38
Как одновременно загрузить файл на сервер и базу данных?


Этот код только загружает файл на сервер

Код

 <form method="post" action="update.php" [color=orangered]enctype="multipart/form-data"[/color]>
         
         Theme <br />
         <input type="text" name="Theme" size="45"><br /><br />
         Image <br />        
         <INPUT name="Image" TYPE="file"><INPUT TYPE="submit" VALUE="Send File"><br />        
         Header <br />
         <input type="text" name="Header" size="45"><br /><br />
          Text <br />
         <input type="text" name="Text" size="45"><br /><br />
         
         <INPUT TYPE="submit" VALUE="Insert">
         
         </form>



а без "enctype="multipart/form-data"" ... файл на сервер не загружается а имя картинки в базу данных да(insert)




update.php

Код

<?php
  
$Theme = $_POST['Theme'];
$Image = $_POST['Image'];
$Header = $_POST['Header'];
$Text = $_POST['Text'];

mysql_connect ("localhost","admin","admin") or die ('Error: ' .mysql_error());
mysql_select_db("upload") or die(mysql_error()); 

$query = "INSERT INTO Table1 (id, Theme, Image, Header, Text) VALUES ('NULL','".$Theme."','".$Image."','".$Header."','".$Text."')";


mysql_query($query) or die('Error updating database');

echo "Database Updated With: " .$Theme." ".$Image." ".$Header." ".$Text ;


?>



<?php
   if($_FILES["Image"]["size"] > 1024*3*1024)
   {
     echo ("Размер файла превышает три мегабайта");
     exit;
   }
   // Проверяем загружен ли файл
   if(is_uploaded_file($_FILES["Image"]["tmp_name"]))
   {
     // Если файл загружен успешно, перемещаем его
     // из временной директории в конечную
     move_uploaded_file($_FILES["Image"]["tmp_name"], "news_images/news_ID/".$_FILES["Image"]["name"]);
   } else {
      echo("Ошибка загрузки файла");
   }
?>


Автор: ayax2005 3.11.2011, 10:46
Потому что следует использовать $_FILES["Image"]["name"] вместо $_POST["Image"]

Автор: Shark 5.11.2011, 12:42
а почему у вас сначала идет запись в БД а потом идет проверка загружаемого изображения?

лучше сначала проверять изображение, и если нет ошибок делать запись в БД, а так что бы я не начал загружать, запись в БД появится по любому, а потом появится ошибка, что я пытаюсь загрузить что-то не то smile

Добавлено через 1 минуту и 2 секунды
p.s.

[color=orangered] - это что за чудо написания такое?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)