|
|
|
| Народ помогите. Просто не знаю что делать, объясните мне глупому как вставить относительный путь на картинку в базу, а потом вывести картинку. Просмотрел все на этом форуме не могу разобраться. Пока все что сделал то форму загрузки файлов на сервер и обработчик
<html>
<head>
<title>Загрузка файлов на сервер</title>
</head>
<body>
<h2><p><b> Форма для загрузки файлов </b></p></h2>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="filename"><br>
<input type="submit" value="Загрузить"><br>
</form>
</body>
</html>
|
<html>
<head>
<title>Результат загрузки файла</title>
</head>
<body>
<?php
if($_FILES["filename"]["size"] > 1024*3*1024)
{
echo ("Размер файла превышает три мегабайта");
exit;
}
if(copy($_FILES["filename"]["tmp_name"],
"c:/temp/".$_FILES["filename"]["name"]))
{
echo("Файл успешно загружен <br>");
echo("Характеристики файла: <br>");
echo("Имя файла: ");
echo($_FILES["filename"]["name"]);
echo("<br>Размер файла: ");
echo($_FILES["filename"]["size"]);
echo("<br>Каталог для загрузки: ");
echo($_FILES["filename"]["tmp_name"]);
echo("<br>Тип файла: ");
echo($_FILES["filename"]["type"]);
} else {
echo("Ошибка загрузки файла");
}
?>
</body>
</html>
|
а как к этому прикрутить вставку в базу и вывод картинки не знаю
Спасибо | |
|
|
|
|
|
|
|
для: bibika
(24.03.2010 в 16:08)
| | "c:/temp/" - это вы щитаете относительным путем? Не будет на сервер такого пути.
Не copy() надо использовать, а move_uploaded_file().
Не храните пути в таблице, храните имя файла, а путь в либо в файле конфигурации, либо в таблице конфигурации, так будет более гибко. | |
|
|
|
|
|
|
|
для: sim5
(24.03.2010 в 16:19)
| | >"c:/temp/" - это вы щитаете относительным путем? Не будет на сервер такого пути.
>Не copy() надо использовать, а move_uploaded_file().
>Не храните пути в таблице, храните имя файла, а путь в либо в файле конфигурации, либо в таблице конфигурации, так будет более гибко.
спасибо за дельные советы. Насчет пути я знаю поправлю, пока все вертится на локальной машине так проще. А насчет второго совета Вы не можете подсказать реализацию того что Вы написали, а то я в полном ауте, не могу разобраться.
Спасибо | |
|
|
|
|
|
|
|
для: bibika
(24.03.2010 в 16:27)
| | По второму совету:
if(move_uploaded_file($_FILES['uploaded']['tmp_name'],$target)) echo "OK!";//$chmod o+rw galleries
|
Это как пример (взято из комментариев на оф.сайте по данной функции (http://ru.php.net/manual/en/function.move-uploaded-file.php)) | |
|
|
|
|
|
|
|
для: bibika
(24.03.2010 в 16:27)
| | Дело не в локалном компьютере - c:/temp/... это не относительный путь, а абсолютный. У вас есть виртуальный хост на локальном компьютере, вот с его путями и работайте - абсолютными, относительными... | |
|
|
|
|
|
|
|
для: bibika
(24.03.2010 в 16:27)
| | >пока все вертится ... так проще.
C таким подходом Вы далеко не уйдете.
Не как проще надо делать, а как правильно.
Проще тогда оно само станет. | |
|
|
|
|
|
|
|
для: Trianon
(24.03.2010 в 20:50)
| | Да я с Вами согласен, все поправил, поставил относительные пути в скрипте. И что делать дальше. | |
|
|
|
|
|
|
|
для: bibika
(24.03.2010 в 16:08)
| |
<?php
if($_FILES["filename"]["size"] > 1024*3*1024)
{
echo ("Размер файла превышает три мегабайта");
exit;
}
if(copy($_FILES["filename"]["tmp_name"],
"c:/temp/".$_FILES["filename"]["name"]))
{
echo("Файл успешно загружен <br>");
echo("Характеристики файла: <br>");
echo("Имя файла: ");
echo($_FILES["filename"]["name"]);
echo("<br>Размер файла: ");
echo($_FILES["filename"]["size"]);
echo("<br>Каталог для загрузки: ");
echo($_FILES["filename"]["tmp_name"]);
echo("<br>Тип файла: ");
echo($_FILES["filename"]["type"]);
$query = mysql_query("INSERT INTO `image` VALUES(NULL,'".$_FILES["filename"]["name"]."','".$_FILES["filename"]["size"]."','".$_FILES["filename"]["type"]."')");
if($query) { echo 'Файл успешно добавлен'; }
} else {
echo("Ошибка загрузки файла");
}
?>
|
| |
|
|
|
|
|
|
|
для: Usta
(25.03.2010 в 12:56)
| | Нельзя так! | |
|
|
|
|
|
|
|
для: sim5
(25.03.2010 в 13:04)
| | >Нельзя так!
Согласен, тут нужно обезопаситься про SQL инъекции:)) Ну это всего лишь пример выполнения.
Переменная $_FILES["filename"]["name"] - нужно обработать. | |
|
|
|
|
|
|
|
для: Usta
(25.03.2010 в 13:09)
| | Вы сперва с загрузкой файла как положено разберитесь, а уж потом об уколах. | |
|
|
|
|
|
|
|
для: Usta
(25.03.2010 в 13:09)
| | Элемент $_FILES["filename"]["name"] вообще нет смысла (читай - не должно) применять для целевого именования файла на серверной стороне.
и copy тут традиционно не в дугу. | |
|
|
|
|
|
|
|
для: Trianon
(25.03.2010 в 14:48)
| | Всем спасибо за ответы. Насчет SQL иньекций я не боюсь, поскольку этот скрипт пишется только для работы в внутри нашей сети, а у нас на счастья нет кому развлекатся с иньекциями.
Еще раз спасибо | |
|
|
|
|
|
|
|
для: bibika
(26.03.2010 в 13:10)
| | А потом это войдёт в привычку и переползёт на "внешние" скрипты... | |
|
|
|
|
|
|
|
для: bibika
(26.03.2010 в 13:10)
| | я ни слова не сказал про инъекции.
Да и , откровенно говоря, в контексте Вашей проблемы - даже не задумался о них. | |
|
|
|