| |
|
|
| | Вставка пользователем своих изображений. Не получается загружать в БД через ссылки. | |
| |
|
|
| |
|
|
| |
для: em
(22.06.2006 в 11:56)
| | | а по подробней нельзя?
что не получается? | |
| |
|
|
| |
|
|
| |
для: em
(22.06.2006 в 11:56)
| | | Не получается загружать в БД что? И как это - "через ссылки"? Объясните попонятнее... | |
| |
|
|
| |
|
|
| |
для: WebTech
(22.06.2006 в 12:13)
| | |
<?php
//Подсоединение к базе данных
if(isset($_FILES['userfile']['name']))
{
$dst="/var/www/tehob/tmp/".$_FILES['userfile']['name'];
copy($_FILES['userfile']['tmp_name'],$dst);
$q="INSERT INTO'images'VALUES ('".$_FILES['userfile']['name']."')";
$result=mysql_query($q);
}
$q="SELECT *FROM'images'";
$rez1=mysql_query($q);
while($s1=mysql_fetch_array($rez1))
{
echo "<img src='/var/www/tehob/tmp/".$s1["image"]."' />";
}
?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" enctype='multipart/form-data' method='POST'>
<input type='file' name='userfile' />
<input type='submit' value='ok' />
</form>
| ] | |
| |
|
|
| |
|
|
| |
для: em
(22.06.2006 в 12:43)
| | | Вы храните имена загружаемых файлов БД?
Ваш скрипт вполне рабочий. Что конкретно у вас не работает?
Или вы хотите хранить в БД само изображение? | |
| |
|
|
| |
|
|
| |
для: WebTech
(22.06.2006 в 13:25)
| | | Нет, изображения я хранить не хочу. У меня картинки не выводятся, хотя в БД они заносятся. | |
| |
|
|
| |
|
|
| |
для: em
(22.06.2006 в 13:30)
| | | Т.е. имена файлов? См. сообщение Trianon'a. После загрузки файла, ему надо давать имя, под которым он будет храниться на сервере. Имя файла с клиентской машины не подойдет. | |
| |
|
|
| |
|
|
| |
для: WebTech
(22.06.2006 в 13:35)
| | | Честно говоря, я не знаю, как это делается. | |
| |
|
|
| |
|
|
| |
для: em
(22.06.2006 в 13:36)
| | | Вы добавляете строку в БД? У нее есть первичный ключ (обычно это порядковый номер строки) ?
Вот и файл делайте с именем, равным этому ключу (номеру).
Если у Вас нет первичного ключа в таблице, лучше создайте. Без него всё равно замучаетесь. | |
| |
|
|
| |
|
|
| |
для: Trianon
(22.06.2006 в 13:41)
| | | Не получается. Предположим, у меня есть первичный ключ id_ac. Как должен измениться мой код? | |
| |
|
|
| |
|
|
| |
для: em
(22.06.2006 в 13:46)
| | |
<?php
//Подсоединение к базе данных
if(isset($_FILES['userfile']['name']))
{
$q="INSERT INTO'images' (image) VALUES ('temp')";
$result=mysql_query($q);
$id=mysql_insert_id();
// вытаскиваем расширение загружаемого файла
$ext = strrchr($_FILES['userfile']['name'], ".");
$dst="/var/www/tehob/tmp/".$id.$ext;
copy($_FILES['userfile']['tmp_name'],$dst);
$sql = "update images set image = '$dst' where id_ac = $id";
$result = mysql_query($sql);
}
$q="SELECT *FROM'images'";
$rez1=mysql_query($q);
while($s1=mysql_fetch_array($rez1))
{
echo "<img src='$s1["image"]."' />";
}
?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" enctype='multipart/form-data' method='POST'>
<input type='file' name='userfile' />
<input type='submit' value='ok' />
</form>
|
| |
| |
|
|
| |
|
|
| |
для: kolobokk
(22.06.2006 в 14:21)
| | | Ничего не выходит. В базу данных записывается в поле 'image' ./var/www/tehob/(id).jpg, но картинки не выводит | |
| |
|
|
| |
|
|
| |
для: em
(22.06.2006 в 15:35)
| | | проверьте пути к директории картинок
и кстати совсем не обязательно указывать путь от корня сервера - проще писать пути от корневой директории сайта, т.е. не ./var/www/tehob/5.jpg , а tehob/5.jpg
в таком случае
echo "<img src='$s1["image"]."' />";
|
просто обязан работать | |
| |
|
|
| |
|
|
| |
для: kolobokk
(22.06.2006 в 16:02)
| | | Не выходит. Кстати, воспринимает только полный путь. | |
| |
|
|
| |
|
|
| |
для: em
(22.06.2006 в 16:12)
| | | в браузере на месте предполагаемой картинки на крестике правой клавишей мыши зайдите в меню "свойства" и посмотрите Адрест(URL) картинки - что он там пишет? | |
| |
|
|
| |
|
|
| |
для: kolobokk
(22.06.2006 в 16:15)
| | | Да, дествительно ерунда какя-то . Получается, что корневой каталог находится внутри директории, в которой и располагаются все мои файлы. http://www.tehob.com/var/www/tehob/tmp/1.jpg | |
| |
|
|
| |
|
|
| |
для: em
(22.06.2006 в 16:19)
| | | ну я думаю на этом вопрос исчерпан
и все будет нормально | |
| |
|
|
| |
|
|
| |
для: kolobokk
(22.06.2006 в 16:22)
| | | Вот что пишет: Warning: copy(tmp/22.jpg): failed to open stream: No such file or directory in /var/www/tehob/tehob.com/image.php. Все дело в этом tmp. Может, его как-то переместить, т.к. tmp лежит выше моей директории tehob.com | |
| |
|
|
| |
|
|
| |
для: em
(22.06.2006 в 16:27)
| | | ваш файл image.php лежит в папке /var/www/tehob/tehob.com/ так?
а директоия tmp находится по адресу /var/www/tehob/tmp/ верно?
значит правильным будет такой относительный путь: ../tmp/22.jpg
его и надо заносить в БД и копировать туда файлы | |
| |
|
|
| |
|
|
| |
для: kolobokk
(22.06.2006 в 16:48)
| | | Да, именно так.
Написала: $dst="../tmp/".$id.$ext; ?
Не работает
А адрес у картинки http://tehob.com/tmp | |
| |
|
|
| |
|
|
| |
для: em
(22.06.2006 в 16:52)
| | | а из tmp никто картинки показывать не даст. tmp же находится за пределами дерева документов. | |
| |
|
|
| |
|
|
| |
для: Trianon
(22.06.2006 в 16:56)
| | | Но они же потом оттуда в базу данных заносятся. А уже потом вытягиваем из БД | |
| |
|
|
| |
|
|
| |
для: Trianon
(22.06.2006 в 16:56)
| | | хм. . верно - что-то я на это внимание не обратил. Спасибо.
значит выход такой создаете папку /var/www/tehob/tehob.com/tmp/
задаете ей права 777
и скрипт image.php
<?php
//Подсоединение к базе данных
if(isset($_FILES['userfile']['name']))
{
$q="INSERT INTO'images' (image) VALUES ('temp')";
$result=mysql_query($q);
$id=mysql_insert_id();
// вытаскиваем расширение загружаемого файла
$ext = strrchr($_FILES['userfile']['name'], ".");
$dst="tmp/".$id.$ext;
copy($_FILES['userfile']['tmp_name'],$dst);
$sql = "update images set image = '$dst' where id_ac = $id";
$result = mysql_query($sql);
}
$q="SELECT *FROM'images'";
$rez1=mysql_query($q);
while($s1=mysql_fetch_array($rez1))
{
echo "<img src='$s1["image"]."' />";
}
?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" enctype='multipart/form-data' method='POST'>
<input type='file' name='userfile' />
<input type='submit' value='ok' />
</form>
|
должен работать как на запись так и на отображение | |
| |
|
|
| |
|
|
| |
для: kolobokk
(22.06.2006 в 17:03)
| | | Простите меня, ребята,я уже всем надоела, но как эти права задаются? | |
| |
|
|
| |
|
|
| |
для: em
(22.06.2006 в 17:09)
| | | Не переживайте Вы так. Здесь никто не кусается.
И обычно общими усилиями проблемы оказываются решенными.
Иногда несовсем сразу, но тем не менее, решения находятся. | |
| |
|
|
| |
|
|
| |
для: Trianon
(22.06.2006 в 17:22)
| | | Спасибо за поддержку, но как задать права я все равно не знаю. | |
| |
|
|
| |
|
|
| |
для: em
(22.06.2006 в 17:24)
| | | Касательно прав. Как Вы работаете с файлами сайта? по FTP?
Тогда права ставятся в FTP-менеджере.
Например в FAR это команда File attributes (Ctrl-A) | |
| |
|
|
| |
|
|
| |
для: em
(22.06.2006 в 17:09)
| | | chmod ("/var/www/tehob/tehob.com/tmp/", 0777); | |
| |
|
|
| |
|
|
| |
для: kolobokk
(22.06.2006 в 17:26)
| | | Это где писать? Я в этом вопросе хуже "чайника" | |
| |
|
|
| |
|
|
| |
для: em
(22.06.2006 в 17:27)
| | | это можно написать один раз в php скрипте
<?
chmod ("/var/www/tehob/tehob.com/tmp/", 0777);
?>
|
| |
| |
|
|
| |
|
|
| |
для: kolobokk
(22.06.2006 в 17:30)
| | | В том же файле, где у меня все скрипты на загрузку изображения или в каком-то другом?
P.S.Я пишу прямо на сервере. Унас есть такая услуга "File manager"., где я сразу редактирую все свои файлы. | |
| |
|
|
| |
|
|
| |
для: kolobokk
(22.06.2006 в 17:30)
| | | Где и как задать права 777 к папке. Если можно подробней. | |
| |
|
|
| |
|
|
| |
для: em
(22.06.2006 в 18:25)
| | | Как ставить права в FARe? | |
| |
|
|
| |
|
|
| |
для: em
(22.06.2006 в 19:57)
| | | Вроде бы установила. Но все равно не работает. В папку tmp не копируется | |
| |
|
|
| |
|
|
| |
для: em
(22.06.2006 в 20:04)
| | | Люди, помогите!
Почему-то всегда загружается только одна картинка 6.jpg | |
| |
|
|
| |
|
|
| |
для: em
(22.06.2006 в 20:24)
| | | Всмысле картинка только с цифровым названием? | |
| |
|
|
| |
|
|
| |
для: valenok
(22.06.2006 в 20:36)
| | |
<?
$max_image_width= 380;
$max_image_height= 600;
$max_image_size= 64 * 1024;
$valid_types = array("gif","jpg", "png", "jpeg");
if (isset($_FILES["userfile"])) {
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
$filename = $_FILES['userfile']['tmp_name'];
$ext = substr($_FILES['userfile']['name'],
1 + strrpos($_FILES['userfile']['name'], "."));
if (filesize($filename) > $max_image_size) {
echo 'Error: File size > 64K.';
} elseif (!in_array($ext, $valid_types)) {
echo 'Error: Invalid file type.';
} else {
$size = GetImageSize($filename);
if (($size) && ($size[0] < $max_image_width)
&& ($size[1] < $max_image_height)) {
if (@move_uploaded_file($filename, "/www/htdocs/upload/")) {
echo 'File successful uploaded.';
mysql_query("INSERT INTO images (id, link) VALUES('','/upload".$filename."')",$link);
} else {
echo 'Error: moving fie failed.';
}
} else {
echo 'Error: invalid image properties.';
}
}
} else {
echo "Error: empty file.";
}
} else {
echo '
<form enctype="multipart/form-data" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="64000">
Send this file: <input name="userfile" type="file">
<input type="submit" value="Send File">
</form>';
}
?>
|
Script by [url=mailto:mail@young.org.ua]Александр Войцеховский[/url]
Взято с Upload файлов, и все с этим связанное | |
| |
|
|
| |
|
|
| |
для: valenok
(22.06.2006 в 20:37)
| | | А потом:
<?
$q="SELECT *FROM 'images'";
$rez1=mysql_query($q);
while($s1=mysql_fetch_array($rez1))
{
echo "<img src=\"".$s1['link'] ."\" />";
}
|
| |
| |
|
|
| |
|
|
| |
для: valenok
(22.06.2006 в 20:36)
| | | Ну да, они ж в БД записываются в таком формате. Так вот, почему-то именно выводится 6jpg, а с другими цифрами не загружаются. Несколько раз проверяла (БД чистила)- результат один - 6.jpg.При чем url у всех правильный http://tehob.com/tmp/(id).jpg | |
| |
|
|
| |
|
|
| |
для: em
(22.06.2006 в 12:43)
| | | $_FILES['userfile']['name'] - это совсем не то имя, под которым файл имеет смысл хранить на сервере. Это имя, которое было у файла на клиентской машине. | |
| |
|
|