PDA

View Full Version : نمایش عکس های ذخیره شده در بانک اطلاعاتی



p30online
جمعه 11 مرداد 1392, 20:17 عصر
هر چه تو تاپیک ها گشتم مشکلم حل نشد .حالا نمی دونم مشکل نمایش عکس چیزه ؟
این هم کدهای نوشته شده


این مربوط به کد form hsj


<form method="post" enctype="multipart/form-data" action="<?php $_SERVER['PHP_SELF']?>">
<input type="hidden" name="MAX_FILE_SIZE" value="5000000">
<p>Upload File:<br />
<input name="SpecialFile" type="file"></p>
<input name="upload" type="submit" class="box" id="upload" value="Submit">
</form>


این کد هم مربوط به آپلود که داخل همین فایل نوشته شده است.



<?php
$result = mysql_query("SELECT UploadedFileID, name,type,size FROM UploadedFiles");
echo '<table style="border: #d6d6d2 solid 1px;"><tr><td>ID<td>name<td>type<td>size<td></tr><tr>';
while ($row = mysql_fetch_array($result))
echo '<td>'.$row['UploadedFileID'].'<td>'.$row['name'].'<td>'.$row['type'].'<td>'.$row['size'].'<td></tr><tr>';
echo '</tr></table>';

if (!empty($_POST['upload']))
{
//Insert File
if(isset($_POST['upload']) && $_FILES['SpecialFile']['size'] > 0) {
$fileName = $_FILES['SpecialFile']['name'];
$tmpName = $_FILES['SpecialFile']['tmp_name'];
$fileSize = $_FILES['SpecialFile']['size'];
$fileType = $_FILES['SpecialFile']['type'];
$fp= fopen($tmpName, 'r');
$content = fread($fp, filesize($tmpName));
echo $theData;
$content = addslashes($content);
fclose($fp);
}
if(!get_magic_quotes_gpc()) {
$fileName = addslashes($fileName);
}

$query = "INSERT INTO UploadedFiles (name, size, type, content)".
"VALUES ('{$fileName}', '{$fileSize}', '{$fileType}', '{$content}')";
$result = mysql_query($query);
if (!$result) {
dberror (mysql_error(), $_SERVER['PHP_SELF'] );
echo 'شکست درعملیات آپلود.'.mysql_error();
}else
echo "فایل شما با موفقیت آپلود شد.";
}
mysql_close();
?>


این هم فایل دوم که اطلاعات عکس ذخیره شده را نشون میده نه خودش را (مشکلم اینجاست)!!!!!!



<?php
$user="root";
$password="";
$dbhost = "localhost";
$database="tutorial";
if (!mysql_connect($dbhost,$user,$password))
die('خطا در ارتباط با ديتا بيس'.'Could not connect: ' . mysql_error());
elseif (!mysql_select_db($database))
die('خطا در ارتباط با جدول'.'Could not connect: ' . mysql_error());
mysql_query("SET NAMES utf8");
mysql_set_charset("utf8");
if(isset($_POST['send'])){
$UploadedFileID = $_POST['ID'];
$query = "SELECT * FROM UploadedFiles WHERE UploadedFileID = $UploadedFileID";
$result = mysql_query( $query );
if( !$result ) {
echo 'عملیات ناموفق'.mysql_error();
exit;
}

if ($row = mysql_fetch_array( $result ))
{
// Output the MIME header - Force as Octet Stream
// You could get this from the FileType Column
header("Content-type: application/octet-stream");
//header("Content-Type: image/jpeg");
header("Content-Length: " . strlen($row['content']) );
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=".$row['name'].'"');
header("Content-Transfer-Encoding: binary\n");
echo $row['content'];
}}else{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="rtl" lang="fa-IR" id="vbulletin_html">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<form action="<?php $_SERVER['PHP_SELF']?>" method="post"><label>ID: </label><input name="ID" type="text"><input name="send" type="submit" value="download"></form>
<?php
$result = mysql_query("SELECT UploadedFileID, name,type,size FROM UploadedFiles");
echo '<table style="border: #d6d6d2 solid 1px;"><tr><td>ID<td>name<td>type<td>size<td></tr><tr>';
while ($row = mysql_fetch_array($result))
echo '<td>'.$row['UploadedFileID'].'<td>'.$row['name'].'<td>'.$row['type'].'<td>'.$row['size'].'<td></tr><tr>';
echo '</tr></table>';
?>
</body>
</html>
<?php
}
mysql_close();
?>





داخل این کد من باید اسم چه فیلدی را بنویسم؟؟؟


echo '<img src="'.$row['content'].'"/>'

من چه کدی را باید بنویسم که عکس نمایش داده بشه؟

این هم بانک اطلاعاتی که عکس ذخیره شده
http://www.uploadtak.com/images/h4279_aks.png

Veteran
جمعه 11 مرداد 1392, 20:26 عصر
!!! شما ادرس عکس رو ذخیره کن توی دیتابیس نه خود عکس رو

p30online
جمعه 11 مرداد 1392, 20:33 عصر
عکسهام کمه .فقط دو سه تا عکسه دیگه زیاد کارش ندارم.فقط چه طوری نمایشش بدم ؟؟؟میشه اینطوری نمایش داد یا نه ؟؟

parsboy
جمعه 11 مرداد 1392, 20:41 عصر
عکسهام کمه .فقط دو سه تا عکسه دیگه زیاد کارش ندارم.فقط چه طوری نمایشش بدم ؟؟؟میشه اینطوری نمایش داد یا نه ؟؟
باسلام دوست عزیزشما همونطورکه دوست عزیزم اشاره کردند باید آدرس عکس رو بریزید تودیتابیس بعدمیتونید به راحتی اون عکس رونمایش بدی
موفق باشید

p30online
جمعه 11 مرداد 1392, 20:53 عصر
این طوری باید چه کدی را نوشت ؟

مهرداد سیف زاده
جمعه 11 مرداد 1392, 22:16 عصر
این طوری باید چه کدی را نوشت ؟

در این روش شما یک پوشه آپلود درست می‌کنید و فایل کاربر به اونجا در هنگام ثبت فرم فرستاده میشه. ساخت آپلود و انتقال فایل بسیار راحت هست. حالا مرحله به مرحله کدهای زیر رو خواهید داشت

1- انتخاب عمس توسط کاربر و در هنگام ذخیره توسط تابع move_uploded_file به پوشه upload سایت شما فرستاده میشه
2- در هنگام ذخیره مشخصات عکس در دیتابیس لینک عکس بصورت زیر در دیتابیس ذخیره میشه:



$url = 'http://mysite.com/upload/'.$_FILES['file']['name'];


3- حالا شما در دیتابیس آدرس فایل رو دارید که میتوانید بصورت زیر اون رو چاپ کنید



echo '<img src="'.$row['url'].'" />';

p30online
جمعه 11 مرداد 1392, 23:34 عصر
یه جوری بگید که طرف بفهمه !من از این کد که مبتدی هستم چی بفهمم؟؟ با کدهای خودم برام توضیح بدید


$url = 'http://mysite.com/upload/'.$_FILES['file']['name'];

مهرداد سیف زاده
شنبه 12 مرداد 1392, 08:07 صبح
در دیتابیس خودت یک فیلد جدید درست کن به اسم url که قراره آدرس محل ذخیره فایل رو بگیره
یه پوشه به اسم upload درست کنید برای ذخیره فایل آپلود شده در اون

در خط 26 که داری INSERT رو مینویسی بصورت زیر باشه



//save upload file to "upload" folder
move_uploaded_file($tmpName,'upload/'.$fileName);

// url for insert the database
$url = 'http://mysite.com/upload/'.$fileName;

// insert the url image to database
$query = "INSERT INTO UploadedFiles (name, size, type, content,url)".
"VALUES ('{$fileName}', '{$fileSize}', '{$fileType}', '{$content}','{$url}')";



حالا شما فایل ذخیره شده رو در پوشه آپلود دارید همراه با مسیر کامل ذخیره اون در سایت شما
برای چاپ عکس ذخیره شده در جدولی که دارید عکس رو همراه اطلاعاتش نشون میدید بصورت زیر باشه

در خط 45 کد دوم


echo '<td><img src="'.$row['url'].'" /></td>';

p30online
شنبه 12 مرداد 1392, 18:08 عصر
آخر پیداش کردم !دست همگی هم درد نکنه !
کدها رو می گذارم اینجا اگه خوب بود شما هم استفاده کنید :تشویق:

دوستان این برای فایل index.php است!!!



<?php

$conn = mysql_connect("localhost", "root", "")
OR DIE (mysql_error());
@mysql_select_db ("database", $conn) OR DIE (mysql_error());


if ($_FILES) {
$image_types = Array ("image/bmp",
"image/jpeg",
"image/pjpeg",
"image/gif",
"image/x-png");
if (is_uploaded_file ($_FILES["userfile"]["tmp_name"])) {
$userfile = addslashes (fread
(fopen ($_FILES["userfile"]["tmp_name"], "r"),
filesize ($_FILES["userfile"]["tmp_name"])));
$file_name = $_FILES["userfile"]["name"];
$file_size = $_FILES["userfile"]["size"];
$file_type = $_FILES["userfile"]["type"];

if (in_array (strtolower ($file_type), $image_types)) {
$sql = "INSERT INTO image "
. "(image_type, image, image_size, image_name, image_date) ";
$sql.= "VALUES (";
$sql.= "'{$file_type}', '{$userfile}', '{$file_size}', "
. "'{$file_name}', NOW())";
@mysql_query ($sql, $conn);
Header("Location:".$_SERVER["PHP_SELF"]);
exit();
}
}
}


if ($_GET) {
error_reporting(0);
$iid = $_GET["iid"];
$act = $_GET["act"];
switch ($act) {
case rem:
$sql = "DELETE FROM image WHERE image_id=$iid";
@mysql_query ($sql, $conn);
Header("Location:index.php");
exit();
break;
default:
//inja khata midad man // gozashtam
// print "<img src="image.php?iid=$iid>";
break;
}
}

?>
<html>
<head>
<title>Storing Images in DB</title>
</head>
<body>
<form method="post" enctype="multipart/form-data">
Select Image File:
<input type="file" name="userfile" size="40">
<input type="submit" value="submit">
</form>
<?php
$sql = "SELECT * FROM image ORDER BY image_date DESC";
$result = mysql_query ($sql, $conn);
if (mysql_num_rows($result)>0) {
while ($row = mysql_fetch_array($result)) {
error_reporting(0);
$i++;
$str .= $i.". ";
$str .= "<a href='image.php?iid=".$row["image_id"]."'>"
. $row["image_name"]."</a> ";
$str .= "[".$row["image_date"]."] ";
$str .= "[".$row["image_size"]."] ";
$str .= "[<a href='index.php?act=rem&amp;iid=".$row["image_id"]
. "'>Remove</a>]<br>";
}
print $str;
}
?>
</body>
</html>



این هم فایل دوم Image.php



<?php

$conn = mysql_connect("localhost", "root", "")
OR DIE (mysql_error());
@mysql_select_db ("database", $conn) OR DIE (mysql_error());
$sql = "SELECT * FROM image WHERE image_id=".$_GET["iid"];
$result = mysql_query ($sql, $conn);
if (mysql_num_rows ($result)>0) {
$row = @mysql_fetch_array ($result);
$image_type = $row["image_type"];
$image = $row["image"];
Header ("Content-type: $image_type");
print $image;
}
?>



راستی بعضی جاها خطا میداد من این کد را گذاشتم.


error_reporting(0);


سعی کنید آدرس عکسو ذخیره کنید نه خود عکسو این روش خود عکسو ذخیره میکنه، بعد نمایش میده .گفتم شاید برای بعضی دوستان بدرد خورد.:چشمک:

p30online
شنبه 12 مرداد 1392, 18:24 عصر
این هم بانک اطلاعاتیش



CREATE TABLE image (
image_id int(10) unsigned NOT NULL auto_increment,
image_type varchar(50) NOT NULL default '',
image longblob NOT NULL,
image_size bigint(20) NOT NULL default '0',
image_name varchar(255) NOT NULL default '',
image_date datetime NOT NULL default '0000-00-00 00:00:00',
UNIQUE KEY image_id (image_id)
);