2013-05-05 3 views
0

мне нужна ваша помощь ... Я хочу, чтобы скопировать/загрузить изображения на сервер и сохранение каталогов в базе данных ... Проблема заключается в том, что изображения являются пустыми = ( Я использую:Empty Изображение было сохранено на сервере

  • WampServer
  • Apache Версия: 2.2.22
  • PHP Версия: 5.3.13
  • MySQL Версия: 5.5.24

Проблема в том, что это создавая файл, но он пуст .... может это ошибка WampServer?

КОД:

<input type="hidden" name="MAX_FILE_SIZE" value="30000"> 
<input name="image" id="image" multiple="true" type="file" /> 
<input name="name" id="name" type="text" maxlength="50" value="" placeholder="Enter Image Name" class="text-field"/> 


if(isset($_POST['name']) && isset($_POST['image'])) 
    { 
     $name = $_POST['name']; 
     $img = $_POST['image']; 

     $file_url = $img; 
     $fp = fopen($file_url, 'rb'); 
     $content = fread($fp, filesize($file_url)); 
     $fp = fopen('../Images/UploadedImages/'.$img, 'wb'); 
     $image='../Images/UploadedImages/'.$img; 

     $result=mysql_query("insert into Images(Name,Directory,Register_Day) 
     values ('$name','$image',now())"); 

     if (!$result) { 
      die("Failed to load");} 
     else{ 
      fputs($fp, $content); 
      fclose($fp); 
      } 
+0

Обратите внимание, что ваш 'fclose ($ fp);' должен находиться вне блока 'if'. Кроме того, вводятся ли записи в вашу базу данных? – Basic

+0

- это $ file_url абсолютный путь к существующему файлу на вашем сервере? если нет, то вы должны загрузить файл с помощью элемента upload-form – Mamuz

+0

Я хочу сохранить image.jpg в dir ../Images/UploadedImages/ и в базе данных будет ../Images/UploadedImages/image.jpg .. в будущем я буду читать из db и ... что-то вроде этого –

ответ

0

Вы не можете загрузить изображение, используя fopen. Попробуйте ввести код ниже. Ваша информация будет представлена ​​в $_FILES массив не в $_POST.

$tmp_name = $_FILES['image']['tmp_name']; 
$name = $_FILES['image']["name"]; 
$uploads_dir = '../Images/UploadedImages'; 
move_uploaded_file($tmp_name, "$uploads_dir/$name"); 

В коде выше $uploads_dir/$name будет ваш образ пути, который можно хранить в БД.
А также убедитесь, что ваш тег <form> имеет набор атрибутов enctype="multipart/form-data".

+0

это работает спасибо .... только проблема теперь заключается в увеличении доступности для загрузки больших изображений) –

1

Uloading изображения не работает, как это, вы должны сделать что-то вроде этого:

$img = $_FILES['image']['tmp_name']; 

отметить также, что вы не хотите, чтобы сохранить изображение в базы данных, вы (возможно) хотите сохранить изображение на сервере, но сохраните только местоположение файла в базе данных.

+0

Я этого не заметил - из PHP я предположил, что OP ожидает, что URL-адреса не являются файлами. – Basic

+0

Е. Это сложный вопрос, но простой разобрался. – Jonast92

0

Пожалуйста, прочтите this и this перед началом кодирования.

+0

okey thx) я прочитаю их) –

Смежные вопросы