Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Загрузка изображений в базу данных. №2

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
El Diablo
Отправлено: 04 Апреля, 2013 - 11:23:15
Post Id



Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Окт. 2012  


Помог: 0 раз(а)




Доброго времени суток, не могу дать ума по поводу этой темы:
http://www.php.su/forum/topic.ph...1&topic=3241

вот мой код:

PHP:
скопировать код в буфер обмена
  1.  
  2. # mkdir("file", 0777);
  3. print '<html>
  4. <title>Загрузка файла</title>
  5. <form action="" method="POST" enctype=multipart/form-data>
  6. <input type="file" name="uploadfile" value="Обзор">
  7. <input type="submit" value="ok">
  8. </html>';
  9.  
  10. $uploaddir='./files/';
  11. $uploadfile=$uploaddir.basename($_FILES['uploadfile']['name']);
  12.  
  13. if(copy($_FILES['uploadfile']['tmp_name'], $uploadfile)){
  14. $res = mysql_query("INSERT INTO pic4(pic)  VALUES(".$_FILES['uploadfile']['name'].")");
  15. if($res) echo "Файл упешно загружен";
  16. else echo "Путь не добавлен в базу данных, но файл загружен";
  17. }
  18.  else echo "Файл не загружен,максимальный размер файла 2 мб ";
  19.  


у меня такая же проблема, суть такова, перед отправкой формы ругается на uploadfile а после загрузки файл копируется на сайт но не добавляется в базу. Типы полей проверил стоит varchar(255)

перед загрузкой ругается вот на вот эти строчки:

PHP:
скопировать код в буфер обмена
  1. $uploadfile=$uploaddir.basename($_FILES['uploadfile']['name']);
  2.  
  3. if(copy($_FILES['uploadfile']['tmp_name'], $uploadfile)){

такое ощущение, что не признает переменные (собственно мне так и пишет не опознанные переменные находятся в коде).


P.S. Ребят не пинайте я только только начинаю =)
P.S.S. Для администраторов и модераторов, не закрывайте тему, не хочу апать ту старую тему которую привел в самом начале =)
P.S.S.S. Создал тему от без исходности, заканчивается 2ой день который я провожу вместе с этим кодом..
 
 Top
LIME
Отправлено: 04 Апреля, 2013 - 11:33:14
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




PHP:
скопировать код в буфер обмена
  1. $res = mysql_query("INSERT INTO pic4(pic)  VALUES(".$_FILES['uploadfile']['name'].")") or die(mysql_error());
 
 Top
El Diablo
Отправлено: 04 Апреля, 2013 - 11:47:35
Post Id



Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Окт. 2012  


Помог: 0 раз(а)




LIME теперь после загрузки файла, он ругается:

Цитата:
Unknown table 'JmuX572Ieww' in field list

Файл загружаю с таким именем: JmuX572Ieww.jpg

получается оп говорит, что JmuX572Ieww не знает куда добавить >
это имя файла а следовательно значение ['name'] >
получается добавляются 2 значения: ['uploadfile'] и ['name'] >
тогда я сделал, что для ['uploadfile'] - upload ряд, а для ['name'] - pic, но после того как стало выдавать ошибку:

Цитата:
Column count doesn't match value count at row 1


Я так пологаю я не правильно сделал?

PHP:
скопировать код в буфер обмена
  1. $res = mysql_query("INSERT INTO pic4(upload,pic)  VALUES(".$_FILES['uploadfile']['name'].")") or die(mysql_error());


P.S. Перед загрузкой файла ошибки так и не ушли Недовольство, огорчение
 
 Top
esterio
Отправлено: 04 Апреля, 2013 - 11:51:09
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




1. загрузка изображений в базу плохая идея
2. данные нужно екранировать
3. поле должно быть blob.
4. Unknown table 'JmuX572Ieww' in field list - гугл еранслейт в помощь
 
 Top
El Diablo
Отправлено: 04 Апреля, 2013 - 11:55:49
Post Id



Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Окт. 2012  


Помог: 0 раз(а)




esterio не не не, там в коде же написано, что файлы загружаются:



в папку files которая находится в корневой папке.

файл кстати там появляется, но он не заносится в базу (под этим я имею в виду не заносится его путь и имя в базу,а не сам файл)

я не правильно сформулировал сообщение, то что заносить файлы в базу плохая идея это я понял полазав по форумам, я собственно к этому и не стремился изначально т.к. размер базы будет иметь огромные размеры и не оправдано занимать место, а также оперировать с базой будет сложнее. Для базы данных только данные но не сами файлы =)
 
 Top
LIME
Отправлено: 04 Апреля, 2013 - 12:13:34
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




El Diablo в какую таблицу загружаешь???(эх не сматериться бы)
 
 Top
El Diablo
Отправлено: 04 Апреля, 2013 - 12:44:54
Post Id



Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Окт. 2012  


Помог: 0 раз(а)




LIME загружаю в таблицу под названием pic4 данные заносятся в колонку под названием upload, pic, сама табличка в присоедниненном файле.

Суть такова, после выбора файла и нажатия Ок, файл копируется в нужный каталог, но в базу данные о файле не заносятся. я предполагал, что будут заносится данные по имени файла, для того что бы я потом вывел в нужном мне месте ссылку куда вставляется название файла из базы и выводится изображение.

P.S. Если есть уроки по добавлению файлов запилите ссылочки буду очень благодарен!
Прикреплено изображение (Нажмите для увеличения)
сатана2.jpg
 
 Top
avtor.fox
Отправлено: 04 Апреля, 2013 - 12:52:40
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)




El Diablo, числовые значения могут писаться в базу и без кавычек -

Строки должны быть обязательно в кавычках -
CODE (SQL):
скопировать код в буфер обмена
  1. ... SET `se` = 'Привет!' ...


Но помните про "правило" одинарных и двойных кавычек.

Ниндзя
 
 Top
El Diablo
Отправлено: 04 Апреля, 2013 - 13:27:21
Post Id



Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Окт. 2012  


Помог: 0 раз(а)




Мне кажется немножко не туда обсуждение пошло Улыбка

вот есть у меня код:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. /*Этот оператор разрешает добавлять файлы т.к. обаладет нужными правами*/
  3. # mkdir("file", 0777);
  4.  
  5. /*Вывод формы, методом пост, при выборе файла и нажатии кнопки Ок, его имя летит вместе с глобальным массивом POST*/
  6. print '<html>
  7. <title>Загрузка файла</title>
  8. <form action="" method="POST" enctype=multipart/form-data>
  9. <input type="file" name="uploadfile" value="Обзор">
  10. <input type="submit" value="ok">
  11. </html>';
  12.  
  13. /*указываю директорию в которую будет заливаться файл*/
  14. $uploaddir='./files/';
  15.  
  16. /*имя загружаемого файла, которое будет состоять из имени файла */
  17. $uploadfile=$uploaddir.basename($_FILES['uploadfile']['name']);
  18.  
  19.  
  20. if(copy($_FILES['uploadfile']['tmp_name'], $uploadfile)){
  21.         /*!!!! вот тут основная беда, когда файл скопировался в директорию выдет, что Путь не добавлен в базу данных, но файл загружен, тобиш переменная $res идет со значением false, следовательно беду нужно искать в этой строчке которая идет ниже*/
  22.         $res = mysql_query("INSERT INTO pic4(pic)  VALUES(".$_FILES['uploadfile']['name'].")");
  23.                 if($res) echo "Файл упешно загружен";
  24.         else echo "Путь не добавлен в базу данных, но файл загружен";
  25. }
  26.  else echo "Файл не загружен,максимальный размер файла 2 мб ";?>



основная беда, когда файл с копировался в директорию система выдает, что Путь не добавлен в базу данных, но файл загружен, тобиш переменная $res идет со значением false, следовательно беду нужно искать в этой строчке которая идет ниже.

Т.к. имя файла может иметь символы и буквы то тип поля стоит varchar (! правильно ли?)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB