Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2012, 16:37   #1
Pingvinenok_Lolo
Пользователь
 
Регистрация: 05.11.2011
Сообщений: 56
По умолчанию php ругается на file_get_contents

Привет форумчанам!!!
Люди добрые, подскажите чего тут не так! Самый наипростейший скрипт загрузки картинки, php материться на функцию file_get_contents($upfile_name);
Код:
Warning: file_get_contents(57-s.jpg): failed to open stream: No such file or directory in /home/user/php_work/New/html/modules/upload_photo_4.php on line 30
Код:
Код:
<form action="upload_photo_4.php" method="post" enctype="multipart/form-data">
Загрузить фото:<br>
<input name="image" type="file"><br>
<input type="submit" value="Загрузить фото">
</form>
    
<?php
if (isset ($_FILES['image']) && !empty($_FILES['image']))
{
	$upfile = $_FILES['image']['tmp_name'];
	$upfile_name = $_FILES['image']['name'];
	$upfile_size = $_FILES['image']['size'];
	$upfile_type = $_FILES['image']['type'];
	$error_code = $_FILES['image']['error'];

	if ($error_code == 0)
	{
		if (substr($upfile_type, 0, 5) == 'image')
		{
			$photo = file_get_contents($upfile_name);
		   
			$sql = "INSERT INTO `photo` (`photo_name`) VALUES ('".$photo."')";
			mysql_query($sql) or die(my_err_sql());
		}
	}
}
?>
Pingvinenok_Lolo вне форума Ответить с цитированием
Старый 23.03.2012, 16:46   #2
zamaevac
Пользователь
 
Аватар для zamaevac
 
Регистрация: 22.03.2010
Сообщений: 88
По умолчанию

Вы ищите файл по имени из $_FILES['image']['name'], а это ошибка. Надо открывать файл по имени из $_FILES['image']['tmp_name'] и всё будет OK
zamaevac вне форума Ответить с цитированием
Старый 23.03.2012, 17:49   #3
Pingvinenok_Lolo
Пользователь
 
Регистрация: 05.11.2011
Сообщений: 56
По умолчанию

zamaevac, совершенно верно, надо открывать путь, а я пыталась открыть имя файла Спасибо разобралась с этим !

ещё маленький вопросик, выдает синтаксическую ошибку в sql-запросе. В чем дело может быть?
вот структура таблицы
Код:
CREATE TABLE `photo`
(
i int(10) auto_increment NOT NULL,
id int(10) int(11) NULL,
photo_name varchar(255) COLLATE utf8_general_ci NULL,
PRIMARY KEY (i)
)
Pingvinenok_Lolo вне форума Ответить с цитированием
Старый 23.03.2012, 18:51   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Pingvinenok_Lolo Посмотреть сообщение
выдает синтаксическую ошибку в sql-запросе. В чем дело может быть?
вот структура таблицы
Цитата:
$photo = file_get_contents($upfile_name);
$sql = "INSERT INTO `photo` (`photo_name`) VALUES ('".$photo."')";
mysql_query($sql) or die(my_err_sql());
Вы пытаетесь вместо имени файла воткнуть в БД сам файл..?

Поиск ошибок и отладка
Составление запросов MySQL
Andkorol вне форума Ответить с цитированием
Старый 23.03.2012, 19:19   #5
Pingvinenok_Lolo
Пользователь
 
Регистрация: 05.11.2011
Сообщений: 56
По умолчанию

Andkorol нееееет, я исправила $photo = file_get_contents($upfile_name); на $photo = file_get_contents($upfile);
и все равно вылазит ошибка sql, о которой выше писала
Код:
$photo = file_get_contents($upfile);
$sql = "INSERT INTO `photo` (`photo_name`)	VALUES ('".$photo."')";
и ссылки Ваши не раз читала, но в данном случае не вижу где у меня ошибка

Последний раз редактировалось Pingvinenok_Lolo; 23.03.2012 в 19:25.
Pingvinenok_Lolo вне форума Ответить с цитированием
Старый 23.03.2012, 19:30   #6
Pingvinenok_Lolo
Пользователь
 
Регистрация: 05.11.2011
Сообщений: 56
По умолчанию

Мне надо в БД занести только имя файла, $upfile = $_FILES['image']['tmp_name']; передает и путь к нему. Как занести в БД только имя файла без пути?
Pingvinenok_Lolo вне форума Ответить с цитированием
Старый 23.03.2012, 19:32   #7
Lesha
Форумчанин
 
Аватар для Lesha
 
Регистрация: 30.01.2009
Сообщений: 418
По умолчанию

сначало надо переместить файл через move_uploaded_file в папку где он будет храниться. Файл же хранящийся во временной папке удалится , но позже. поэтому путь к нему нельзя прописывать.

Последний раз редактировалось Lesha; 23.03.2012 в 19:34.
Lesha вне форума Ответить с цитированием
Старый 23.03.2012, 19:34   #8
Pingvinenok_Lolo
Пользователь
 
Регистрация: 05.11.2011
Сообщений: 56
По умолчанию

Lesha, милый Вы мой человек, мне не надо хранить файлы в БД, мне надо всего лишь заносить в БД имена файлов, без пути к ним. Как это сделать?
Pingvinenok_Lolo вне форума Ответить с цитированием
Старый 23.03.2012, 19:35   #9
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Pingvinenok_Lolo Посмотреть сообщение
и все равно вылазит ошибка sql, о которой выше писала
file_get_contents() - читает содержимое файла в строку, независимо от того, что вы там пробовали менять.
Хотите записать в БД имя файла - так и записывайте именно имя файла, а не сам файл в текстовом представлении.
Цитата:
и ссылки Ваши не раз читала
Очень в этом сомневаюсь - выполнение хотя бы "Быстрых рекомендаций" из первой ссылки дало бы вам массу подсказок о причинах ошибки.
Вы даже текст ошибки не удосужились нам привести.
Andkorol вне форума Ответить с цитированием
Старый 23.03.2012, 19:45   #10
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Pingvinenok_Lolo Посмотреть сообщение
мне надо всего лишь заносить в БД имена файлов, без пути к ним. Как это сделать?
Убрать file_get_contents - это вам не нужно.
В запросе - вместо $photo прописать $upfile_name.

Загрузка файлов на сервер, без их сохранения на сервере - вы уверены..?
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
file_get_contents + все ссылки со станицы valerka92 PHP 3 19.01.2012 09:17
file_get_contents - как грабануть 1 картинку?? valerka92 PHP 7 15.01.2012 00:25
file_get_contents DimmoS Помощь студентам 1 12.08.2011 13:15
аналог file_get_contents() A_r_r_a_y PHP 7 07.07.2010 17:26
php ругается на простейшее регулярное выражение _PROGRAMM_ PHP 5 10.05.2010 17:39