|
|
|
|
|
для: 10100100
(01.03.2006 в 19:17)
| | приблезительно так: (php)
if(stristr($_FILES['fimg']['type'],"image"))
{
|
записать в базу t_pic с полем Ident (autoincrement) выдернуть значение Ident ($ImageName) и записать
move_uploaded_file($_FILES['fimg'][tmp_name], DIR_TO_IMG."/".$ImageName)
|
вот и все | |
|
|
|
|
|
|
|
для: juliya
(01.03.2006 в 16:44)
| | просумировав все выше сказаное у меня кое-что получилось
файл index.php
<?
if(isset($_POST["submit"]))
{
if(stristr($_FILES['fimg']['type'],"image"))
{
$ff = $_FILES['fimg']['tmp_name'];
$handle = fopen($ff, "rb");
$contents = fread($handle, filesize($ff));
fclose($handle);
$link = mysql_connect(SERVER_NAME, DB_USER, DB_PASS)
or die("Could not connect : " . mysql_error());
mysql_select_db("test") or die("Could not select database");
$query = "INSERT INTO t_pic (b_Data, s_header) VALUES ('".mysql_escape_string($contents)."', '".$_FILES['fimg']['type']."')";
$result = mysql_query($query) or die("Query failed : " . mysql_error());
}
}
$res = $ChatDB->SelectFromBase("select * from t_pic");
if(!$res)$RecordCount = 0; else $RecordCount = mysql_num_rows($res);
$MainText = "<table width=\"90%\"><tr>";
for($i = 0; $i < $RecordCount; $i++)
{
$id = mysql_result($res, $i, "Ident");
$MainText .= "<td><img src=\"test/img.php?id=$id\"></td>";
$MainText .= "</tr><tr>";
}
$MainText .= "</tr></table>";
$MainText .="<form method=post action=\"index.php?Act=test\" enctype=\"multipart/form-data\">
<input type=\"file\" name=\"fimg\">
<input type=\"submit\" name=\"submit\" value=\"Послать данные\">
</form>";
echo $MainText;
?>
|
и файл img.php
<?
include ("db.php");
$link = mysql_connect(SERVER_NAME, DB_USER, DB_PASS)
or die("Could not connect : " . mysql_error());
mysql_select_db("test") or die("Could not select database");
$id = $_GET["id"];
$query = "select * from t_pic where (Ident = $id)";
$result = mysql_query($query) or die("Query failed : " . mysql_error());
header('Content-type: '.mysql_result($result,0, "s_header").' ');
print( mysql_result($result,0, "b_Data"));
/* Освобождаем память от результата */
mysql_free_result($result);
/* Закрываем соединение */
mysql_close($link);
?>
|
добавить хочу базу майскуеля из таблицы "test"
CREATE TABLE 't_pic' (
'Ident' int(11) NOT NULL auto_increment,
'b_Data' longblob NOT NULL,
's_header' varchar(10) NOT NULL default '',
PRIMARY KEY ('Ident')
) TYPE=MyISAM AUTO_INCREMENT=1 ;
|
и нормально работает (без библиотеки GDI) | |
|
|
|
|
|
|
|
для: 10100100
(01.03.2006 в 19:17)
| | вообще-то это лучше отдельной веткой обсуждать.
BTW, в коментарии к коду я наврал.
Вместо //следующие три строки можно заменить на $buffer = file($photo);
следует читать //следующие три строки можно заменить на $buffer = file_get_contents($photo); | |
|
|
|
|
|
|
|
для: Trianon
(01.03.2006 в 17:15)
| | :)) а у мя обратный вопрос! :) как записать путь к файлу в базу - тоетсь чтобы только ссылку выводить а не весь файл.. ну тоесть чтобы выводить картинку но в базе хранить толкьо ссылку на него! :)) я чёт сообразить совсем не могу 6)) | |
|
|
|
|
|
|
|
для: juliya
(01.03.2006 в 16:44)
| | Следовательно, в базу попала фотография, а не имя файла. Что и требовалось.
На сервер грузится долго? | |
|
|
|
|
|
|
|
для: Trianon
(01.03.2006 в 16:27)
| | Теперь моя фотка выводится вот так яШяа\0JFIF\0\0H\0H\0\0яб2Exif\0 И очень долго грузится | |
|
|
|
|
|
|
|
для: juliya
(01.03.2006 в 16:05)
| | В форме должно быть что-то вроде
<form method=post enctype=multipart/form-data >
Photo: <input type=file name=photo />
<input type=submit />
|
А в обработчике формы:
$photo = $_FILES['photo']['tmp_name']);
//следующие три строки можно заменить на $buffer = file($photo);
$file = fopen($photo, "r");
$buffer = fread($file, filesize($photo));
fclose($file);
mysql_connect(...);
mysql_select_db(...)
$query = "INSERT INTO vsm_notebook (f_photo) VALUES('"
. mysql_escape_string($buffer) . "')";
mysql_query($query);
|
| |
|
|
|
|
|
|
|
для: Loki
(01.03.2006 в 16:15)
| | Блин, та же фигня. Как еще можно попробовать? | |
|
|
|
|
|
|
|
для: juliya
(01.03.2006 в 16:05)
| | то что открывать надо загруженный файл, а не поле из формы:
$file = fopen($_FILES['photo']['tmp_name'], "r");
|
| |
|
|
|
|
|
|
|
для: Trianon
(01.03.2006 в 15:51)
| | Я делаю так. У меня поле type="file" name="photo", т.е. имя photo
$file = fopen($photo, "r");
$buffer = fread($file, filesize($photo));
fclose($file);
|
А он мне пишет
Warning: fread(): supplied argument is not a valid stream resource in ...
Warning: fclose(): supplied argument is not a valid stream resource in ...
|
Что ж не так то? | |
|
|
|
|