| |
|
|
| | Есть вот такой скрипт:
<?php
include "dbopen.php";
if (empty ($cid))
{
$sql="SELECT `cid`, `name`, `source` `img_name` FROM `myfiles` order by `cid` DESC";
$res = mysql_query($sql, $link) or die("Неверный запрос: $sql");
//echo "count roes:".mysql_num_rows($res);
while ($row = mysql_fetch_array($res))
{
$name1=strtok ($row[1], ".");
echo "<a href='?cid={$row[0]}'>$name1<br></a>";
$f = fopen($row[2],"r");
$describe_link = fread($f, filesize ($row[2]));
$d = nl2br($describe_link);
for ($i=0;$i<40;$i++)
{
$link_array=explode(" ",$d);
echo $link_array[$i]." ";
}
@fclose($f);
echo "...<br><br>";
$img_name=$row[3];
echo "<img src='/uploads/$img_name' align='top' hspace='10'>";
}
}
?>
|
Скрипт выводит слева - картинку, справа - ссылку и несколько слов ее описания. Все выводится, а вот картинка - нет. Хотя в базе все данные присутствуют. В чем дело?
Заранее спасибо. | |
| |
|
|
| |
|
|
| |
для: Лена
(28.03.2008 в 09:53)
| | | А в папке uploads картинка точно существует? Она не побита? Если обратиться к ней по прямому адресу в браузере - отображается? | |
| |
|
|
| |
|
|
| |
для: cheops
(28.03.2008 в 10:19)
| | | Спасибо, что ответили.
В папке uploads картинка существует. Если обратиться к ней по прямому адресу в броузере - все прекрасно выводится. Но когда вывожу вместе со ссылкой - просто квадратик.
Объясните, пожалуйста, что значит: картинка не побита?
Понимаю, что вопрос может показаться глупым, но лучше это, чем вообще не знать. | |
| |
|
|
| |
|
|
| |
для: Лена
(28.03.2008 в 10:32)
| | |
echo "<img src='/uploads/".$img_name."' align='top' hspace='10'>";
|
может, в имени файла есть пробел? | |
| |
|
|
| |
|
|
| |
для: elenaki
(28.03.2008 в 11:06)
| | | Я же не один файл вывожу - массив. Ни в одном из имен пробелов нет.
Так как тогда решить проблему? | |
| |
|
|
| |
|
|
| |
для: Лена
(28.03.2008 в 11:10)
| | | и ни один файл не выводится? а что видно в коде, если в браузере открыть по view source? | |
| |
|
|
| |
|
|
| |
для: elenaki
(28.03.2008 в 11:15)
| | | Вот что:
<img src='/uploads/' align='top' hspace='10'> Броузер, получается, не видит переменную $img_name.
Ну как ему (броузеру) открыть глаза?
Да, ни один файл не выводится. | |
| |
|
|
| |
|
|
| |
для: Лена
(28.03.2008 в 11:32)
| | | BMECTO
$img_name=$row["img_name"];
|
| |
| |
|
|
| |
|
|
| |
для: elenaki
(28.03.2008 в 11:35)
| | | Результат функции не правильно использовали
<?php
include "dbopen.php";
if (empty ($cid))
{
$sql="SELECT `cid`, `name`, `source` `img_name` FROM `myfiles` order by `cid` DESC";
$res = mysql_query($sql, $link) or die("Неверный запрос: $sql");
//echo "count roes:".mysql_num_rows($res);
while ($row = mysql_fetch_array($res))
{
$name1=strtok ($row['name'], ".");
echo "<a href='?cid={$row['cid']}'>$name1<br></a>";
$f = fopen($row['source'],"r");
$describe_link = fread($f, filesize ($row['source']));
$d = nl2br($describe_link);
for ($i=0;$i<40;$i++)
{
$link_array=explode(" ",$d);
echo $link_array[$i]." ";
}
@fclose($f);
echo "...<br><br>";
$img_name=$row['img_name'];
echo "<img src='/uploads/$img_name' align='top' hspace='10'>";
}
}
?>
|
| |
| |
|
|
| |
|
|
| |
для: elenaki
(28.03.2008 в 11:35)
| | | Я поняла, в чем дело. Только не знаю, как это исправить.
В броузер выводится вот так: первая картинка вообще не выводится, только ссылка+ее содержание, дальше выводится первая картинка+вторая ссылка+второе содержание. Дальше вторая картинка+третья ссылка+третье содержание. Получается картинка на один шаг "отстает". Во view source пишет вот такое: <img src='/uploads/C:/WebServers/home/localhost/www/index/uploads/rezume.txt' align='top' hspace='10'>, идет ссылка на текст, который возле фото.
В базе же все ссылки верны.
Может, у меня неправильный скрипт формы загрузки ссылок?
Вот он:
<?
include ("dbopen.php");
echo "<form enctype='multipart/form-data' action='' method='post'>
Выбрать текст:<br>
<input type='file' name='myfile'><br>
Выбрать картинку: <br>
<input name='img_name' type='file'><br>
<input type='submit' value='Send File' >
</form>";
function upload ()
{
global $link;
$uploaddir = '/WebServers/home/localhost/www/index/uploads/';
$uploadfile = $uploaddir.basename($_FILES['myfile']['name']);
@$uploadfile_img = $uploaddir.basename($_FILES['img_name']['name']);
$max_image_width= 380;
$max_image_height= 500;
$max_image_size= 1000000;
$valid_types = array("gif","jpg", "png", "jpeg");
if (move_uploaded_file($_FILES['myfile']['tmp_name'], $uploadfile))
{
$name=$_FILES['myfile']['name'];
$type=$_FILES['myfile']['type'];
$size=$_FILES['myfile']['size'];
$tmp_name=$_FILES['myfile']['tmp_name'];
$error=$_FILES['myfile']['error'];
}
else
{
return "<h2>Файл не удалось скопировать!</h2>";
}
if (is_uploaded_file($_FILES['img_name']['tmp_name']))
{
$filename_img = $_FILES['img_name']['tmp_name'];
$ext = substr($_FILES['img_name']['name'], 1 + strrpos($_FILES['img_name']['name'], "."));
if (filesize($filename_img) >= $max_image_size)
{
echo "Размер файла больше $max_image_size";
}
elseif (!in_array($ext, $valid_types)) {
echo "Неправильное расширение файла.";
}
else
{
$size_img = GetImageSize($filename_img);
if (($size_img) && ($size[0] <= $max_image_width) && ($size_img[1] <= $max_image_height))
{
if (@move_uploaded_file($filename_img,$uploadfile_img))
{
echo "Файл успешно загружен.";
}
else
{
echo "Файл не удалось загрузить.";
}
}
else
{
echo "Неверные img-свойства.";
}
}
}
// загрузить линки в базу
if (!empty ($uploadfile)&&!empty ($uploadfile_img))
{
$name=basename($uploadfile);
$size=filesize ($uploadfile);
$type=filetype ($uploadfile);
$img_name=basename($uploadfile_img);
$sql="INSERT INTO `myfiles`(name,size,type,source,img_name) VALUES('$name','$size','$type','$uploadfile','$img_name')";
mysql_query ($sql, $link);
}
}
if (isset($_POST) && count($_POST)>0)
upload();
?>
|
| |
| |
|
|
| |
|
|
| |
для: Лена
(28.03.2008 в 12:08)
| | |
SELECT `cid`, `name`, `source` `img_name` FROM `myfiles` order by `cid` DESC
|
кажется, пропущена запятая в запросе - между 'source' и img_name'' | |
| |
|
|
| |
|
|
| |
для: elenaki
(28.03.2008 в 12:13)
| | | Теперь во view source все правильно: <img src='/uploads/2.gif' align='top' hspace='10'>
А картинок по-прежнему нет. | |
| |
|
|
| |
|
|
| |
для: Лена
(28.03.2008 в 12:31)
| | | a TAK: <img src='uploads/2.gif' align='top' hspace='10'>? (6e3 /) | |
| |
|
|
| |
|
|
| |
для: elenaki
(28.03.2008 в 12:36)
| | | Картинки показались! Спасибо лучшим умам Афин (elenaki) и всем остальным!
Вот только ссылка текстовая, если она большая, почему-то обрезается.
И последний вопрос: если у меня в базе cid дошел, допустим, до 47, а я хочу его сбросить к 0, как это сделать? | |
| |
|
|
| |
|
|
| |
для: Лена
(28.03.2008 в 12:44)
| | | возможно что ссылка обрезается потому, что поле в БД недостаточной длины для хранения всего текста. Проверьте, какой тип поля у вас (varchar или text). Установите поле в тип text | |
| |
|
|
| |
|
|
| |
для: Лена
(28.03.2008 в 12:44)
| | | ссылка текстовая, если она большая, почему-то обрезается - надо увеличить размер поля, в которое их записыватете. если VARCHAR (до 255 символов) мал, используйте TEXT
в базе cid дошел, допустим, до 47, а я хочу его сбросить к 0 - тут надо ALTER TABLE применять, кажется. не помню точно. редко обнуляю индекс. | |
| |
|
|
| |
|
|
| |
для: elenaki
(28.03.2008 в 12:55)
| | | Действительно делается через ALTER TABLE. Если через phpMyAdmin - раздел операции, Опции таблицы.
Еще раз спасибо всем. Тема закрыта. | |
| |
|
|