PDA

View Full Version : سوال: انتخاب عکس به صورت راندوم



mehdiv
سه شنبه 05 دی 1391, 14:30 عصر
با سلام خدمت تمامی دوستان
یه سوال دارم
من یه اسلایدر درست کردم
با تمامی چیز هاش
حالا یه سوال دارم
یه دونه آپلودر واسه آپلود عکس ها نوشتم که عکس ها رو ذخیره میکنه تو دیتا بیس
اما من تیبلی که عکس توشته را موقعی که فراخانی میکنم هیچی توش نیست
میخواستم بدونم
راهی هست که من بیام یه پوشه بسازم و بگم اینجا آپلود کنه و توی اسلایدر بیاد عکس هاشو نشون بده
بعد موردی که هست اینه که عکس ها لینک دارن میخوام یه جوری باشه که عکس رو از پوشه بخونه لینک رو از دیتا بیس
و چون اسلایدر تک عکسی نیست
باید همه عکس ها رو بخونه و بتونه نشون بده

فرزند کوروش
سه شنبه 05 دی 1391, 15:02 عصر
شما باید هنگام آپلود عکسها رو کپی کنی توی یه پوشه بعد ادرسش و لینکش رو بدی تو دیتا بیس.
عکسها رو چجوری آپلود کردی تو دیتا بست که چیزی توش نیست؟

mehdiv
سه شنبه 05 دی 1391, 15:13 عصر
سلام به این شکل


<?php
$iSize = 800000;

$iWidth = 1000;

$iHeight = 1000;

if((isset($_FILES["image"])) && ($_FILES["image"]["size"] > 0))
{
$imgSize = $_FILES["image"]["size"];
$imgType = $_FILES["image"]["type"];
$tmpName = $_FILES["image"]["tmp_name"];

if($imgSize > $iSize)
exit("Error: Large file size.");

$getImgSize = getimagesize($tmpName);

if(!$getImgSize)
exit("Error: Invalid Image File.");

list($width, $height) = $getImgSize;

if(($width > $iWidth) || ($height > $iHeight))
exit("Maximum width and height exceeded. Please upload images below 100x100px size");

$fp = fopen($tmpName, 'r');
$imageName = fread($fp, filesize($tmpName));

if(!get_magic_quotes_gpc())
$imageName = addslashes($imageName);

fclose($fp);

$date = date("Y-m-d H:i:s");

$link = $_POST['link'];

//Connect To Date Base
$host_name = "localhost";
$user_name = "xxx";
$pass = "xxx";
$db_name = "xxx";
$dblink = mysql_connect($host_name,$user_name,$pass)or die(mysql_error());
$connect = mysql_select_db($db_name,$dblink)or die(mysql_error());
//Insert To Date Base
$Query = mysql_query("INSERT INTO `xxx` (`imgType` ,`imgImage` ,`imgSize` ,`imgDate` ,`link`)
VALUES('$imgType','$imgImage','$imgSize','$imgDate ','$link') ");
if($Query==true)
echo 'The Insert is Successfull';
else
echo 'The Insert is Not Successfull';
mysql_close();
}

?>

اطلاعات رو با متود پشت میفرستم واسه این و این میفریته تو دیتابیس
همه چیزاش تو دیتا بیس ثبت میشه فقط لینک و عکس ذخیره نمیشه
سایز عکس فرمت عکس همچیش ذخیره میشه
عکس و لینک ذخیره نمیشه

mehdiv
سه شنبه 05 دی 1391, 15:18 عصر
در ضمن کالمی که عکس توش ذخیره میشه از نوع BLOB هست
اما بعد از ارسال اطلاعات تو کالم اینو مینویسه

[BLOB - 0 B]

تو مابقی اطلاعات ذخیره میشه مثل سایز نوع آی دی فرمت و .....

MMSHFE
سه شنبه 05 دی 1391, 21:22 عصر
دوست عزیز، توصیه میکنم هرگز خود عکس رو توی دیتابیس ذخیره نکنید و صرفاً اسم فایلش رو توی دیتابیس بگذارین. اینطوری توی حجم دیتابیستون صرفه جویی و بهینگی خوبی به وجود خواهد اومد. درصورت ذخیره خود تصویر در دیتابیس مشکل افزونگی اطلاعات دیتابیس، کدهای اضافه برای رمزگذاری جهت ذخیره و رمزگشایی موقع نمایش و... رو خواهید داشت. ضمناً شما میتونید به هر شکلی که دوست دارین تصاویر (یا لینکشون) رو توی یک آرایه قرار بدین و با تابع shuffle آرایه رو بهم بریزین تا تصاویر بصورت تصادفی ظاهر بشن.
موفق باشید.

mehdiv
سه شنبه 05 دی 1391, 23:43 عصر
با سلام خوب اگه میشه اینی که میگید توضیح بدید
یعنی این که من عکس رو تو پوشه آپلود کنم
و اسمش و آدرسش اونجا ذخیره بشه
که بشه توی اسلایدر برای نشون دادنش فراخانیش کنه

siavashsay
چهارشنبه 06 دی 1391, 10:44 صبح
دوست عزیز !
من میخواستم یک نمونه آپلودر واستون بذارم اما خوب دوستمون گذاشتن دیگه ! حجم رو زیاد نکردم !
شما اول یک پوشه توی سایتتون درست میکنید به آدرس مثلا : your-site.com/images/avatars
بعد موقع آپلود عکس فایل رو rename میکنید !
فایل با همون اسم کپی میشه توی اون آدرس سایت شما و نام فایل هم مثلا ( user1.png ) میره توی دیتابیس !
حالا کافیه شما با یک کد عکس رو فراخوای کنی :


<img src="your-site.com/images/avatars/"<?php echo $img;?> />

به همین راحتی :)

mehdiv
چهارشنبه 06 دی 1391, 13:46 عصر
خوب یه سوال این کد مثلا فرض کن یه اسلایدر داریم هم زمان 5 تا عکس رو نشون میده و یه چیز دیگه اسم عکس ها باید پشت سر هم باشه یعنی مثلا 1 و 2 و 3 و ..... که این بتونه بیاره پشت سر هم؟

mehdiv
چهارشنبه 06 دی 1391, 13:47 عصر
و مورد بعد این که الان کد ریختن توی دیتا بیسش رو نوشتم اما فقط اون چیزی که شما میگید رو کجا بنویسم
و چی بنویسم

mehdiv
چهارشنبه 06 دی 1391, 16:52 عصر
دوستان کمک کنید

فرزند کوروش
پنج شنبه 07 دی 1391, 09:46 صبح
برای هر رکورد تو دیتا بیس یک ای دی وجود داره که بصورت اتو اینکرومنت هست.ما یه حلقه باید بنویسی که تمام ادرس ها ی عکس و لینکها رو لیست کنه بعد اونا رو داخل کدت جاساز کن


<?php
$select = mysql_query("SELECT * FROM tablename);

while ($row = mysql_fetch_object($select)) {
?>
<img src="your-site.com/images/avatars/"<?php echo $row->imgaddress ?> />
<?php
}
?>

imgaddress اسم جدول مربوط به ادرس عکس هست
بعد این رو بسته به کد جاوا اسکریپتت باید نمایش بدی