2012-05-21 3 views
0

У меня есть форма с полем ввода файла:Загрузить изображение в папку и получить его имя пути

<tr align="left"> 
    <td>Image :</td> 
    <td align="left"> 
     <input type="file" name="ImageFile" size="18"> 
    </td> 
</tr> 

Я тогда делать вещи с этим файлом изображения на отправить:

$image_tmpname = $_FILES['ImageFile']['name']; 
$imgdir = "blogImages/"; 
$imgname = $imgdir.$image_tmpname; 

$blogs = new Blogs(); 

move_uploaded_file($_FILES['ImageFile']['tmp_name'], $imgname); 
    $insert = $blogs->insertBlog($heading, $article, $date, $imgname); 

каталог Я хочу сохранить изображения, называется blogImages и находится в том же каталоге, что и выше.

Вы можете заметить, в приведенном выше я вызываю на функцию, вызываемую insertBlog в классе Blogs'. Insert blog takes all the info and inputs the data to a mysql table. The code for insertBlog` является:

function insertBlog($heading, $article, $date, $imgname){ 
     $query = "INSERT INTO Blogs (BlogTitle, MainArticle, PostDate, Image) VALUES ('$heading', '$article', '$date', '$imgname')";   
     $oDatabase = new database; 
     $connection = $oDatabase->Connect(); 
     if (!mysql_select_db($oDatabase->Name(), $connection)) 
      $oDatabase->ShowError("Blogs.insertBlog"); 

     if (!(@ mysql_query ($query, $connection))) 
      $oDatabase->ShowError("Blogs.insertBlog"); 

     return (mysql_insert_id()); 
    } 

Когда пользователь заполняет форму, он хранит всю другую информацию правильно в MySQL таблицу отдельно от информации изображения. Кроме того, он не сохраняет фактическое изображение в папке blogImages. Итак, как мне получить этот сценарий для загрузки изображения в папку blogImages и сохранить его путь в таблице mysql. На данный момент он не сохраняет изображение в db и ставит значение blogImages/ в поле пути изображения в моей таблице MySQL.

+0

Вы проверили, действительно ли загрузка действительно удалась? 'if ($ _FILES ['ImageFile'] ['error']! == UPLOAD_ERR_OK) {die (« Ошибка загрузки »); } '. –

+0

он не загружался, потому что когда я перехожу в папку «blogImages», там ничего нет – RSM

+0

Так что либо он вообще не загружается, либо у вас есть проблема с правами/пути. Ваш код предполагает успех каждый, что плохой идеей. Начать проверку ошибок.move_uploaded_file возвращает false, если это не удается. у загрузок есть ненулевой код ошибки, если они не сработали, и т. д. –

ответ

1

Для перевода файла необходимо указать multipart/form-dataenctype в формате HTML.

<form enctype="multipart/form-data" action="" method="POST"> 
Смежные вопросы