PDA

View Full Version : آموزش: گالري عكس ساده اما قوي تماماً با استفاده از PHP



MMSHFE
شنبه 08 مرداد 1390, 10:11 صبح
با سلام، كد ضميمه رو دريافت و مشاهده كنيد. اين گالري، امكانات خيلي خوبي داره كه به درد يادگيري ميخوره:
- آپلود تصاوير
- ايجاد پيشنمايش از تصاوير
- نمايش تعداد دلخواه تصوير در هر سطر
- درج عنوان و لينك براي هر تصوير
- نمايش جداگانه هر تصوير در سايز اصلي با كليك روي پيشنمايش
- ذخيره تصاوير در ديتابيس
- اختصاص نام تصادفي و غيرتكراري به تصاوير
- امكان تعريف حداكثر سايز قابل قبول براي فايل تصوير
- سادگي بيش از حد (تمام كارها درون يك فايل انجام ميشود)

اميدوارم به دردتون بخوره. اگه سؤالي بود در خدمتم.

ghasemweb
شنبه 08 مرداد 1390, 12:12 عصر
ممنون دوست عزیز گل کاشتی. ولی به نظرم اگه عکسا تو دیتابیس ذخیره نشه بهتره البته این نظر من هست. در کل عالی بود خسته نباشید البته هنوز تست نکردم!!!

MMSHFE
شنبه 08 مرداد 1390, 12:21 عصر
اين هم يك نمونه بدون DB هست :


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<!-- Copyright : http://www.ncis.ir -->
<html>
<head>
<title>Gallery</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<style type="text/css">
img {
border: none;
}
a {
font-weight: bold;
text-decoration: none;
}

</style>
<?php
function myDie($message) {
die("$message\n</body>\n</html>");
}
?>
</head>
<body>
<form action="" enctype="multipart/form-data" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="1048576"/>
Image: <input type="file" name="image"/>
<input type="submit" name="submitted" value="Upload"/>
</form>
<hr/>
<?php
if(isset($_GET['show']) && $_GET['show'] != '') {
echo '<a href="index.php">Back</a><br/>'."\n";
if(file_exists('images/'.$_GET['show']).'.jpg') {
echo '<img src="images/'.$_GET['show'].'.jpg"/><br/>'."\n";
}
else {
echo 'Image not found.<br/>'."\n";
}
}
else {
$files = scandir('images');
if(isset($_POST['submitted'])) {
if($_FILES['image']['error'] == 0 && $_FILES['image']['type'] == 'image/jpeg') {
$files = scandir('images');
do {
$name = md5(rand()).'.jpg';
} while(in_array($name, $files));
move_uploaded_file($_FILES['image']['tmp_name'], 'images/'.$name);
if(file_exists('images/'.$name)) {
$src = imagecreatefromjpeg('images/'.$name);
$dst = imagecreatetruecolor(125, 125);
imagecopyresized($dst, $src, 0, 0, 0, 0, 125, 125, imagesx($src), imagesy($src));
imagejpeg($dst, 'thumbs/'.$name, 100);
imagedestroy($src);
imagedestroy($dst);
}
}
else {
echo 'Error in uploading file. Please try again.<br/>'."\n";
}
}
echo '<hr/>'."\n";
$files = scandir('images');
if(count($files) > 2) {
echo '<table border="0px" width="100%">'."\n";
$count = 0;
$total = 4;
for($i = 2; $i < count($files); $i++) {
$file = substr($files[$i], 0, 32);
if($count == 0) {
echo '<tr align="center" valign="middle">'."\n";
}
echo '<td width="'.(floor(100 / $total)).'%"><a href="index.php?show='.$file.'"><img src="thumbs/'.$file.'.jpg"/></a></td>'."\n";
$count++;
if($count == $total) {
echo '</tr>'."\n";
$count = 0;
}
}
if($count != 0) {
for(;$count < $total; $count++) {
echo '<td width="'.(floor(100 / $total)).'">&nbsp;</td>'."\n";
}
echo '</tr>'."\n";
}
echo '</table>'."\n";
}
}
?>
</body>
</html>
اين يكي، چك ميكنه ببينه نوع فايل JPEG هست يا نه. ميتونيد همين شرط (بررسي نوع فايل) رو توي نسخه DB هم استفاده كنيد (البته اونجا بايد || بگذارين و به جاي == هم از =! استفاده كنيد). براي اجرا، پوشه هاي images و thumbs رو كنار اين فايل بسازيد. موفق باشيد.

eshpilen
شنبه 08 مرداد 1390, 14:55 عصر
این تبلیغات تدریس آنلاین با چت که توش گذاشتی دیگه چه مدلیه؟
تاحالا امتحانش کردی؟
منظورت ویدئوچت هست لابد؟ طرف مقابلت رو هم باید ببینی یا میتونه یه طرفه باشه؟

پرداخت هزینه بعد از برگزاری هر جلسه
آموزش بگیریم پول ندیم میخوای چیکار کنی اونوقت؟ :لبخند:

MMSHFE
شنبه 08 مرداد 1390, 20:54 عصر
نه چت نوشتاري هست. هر چند نفر كه باشن مهم نيست چون من يكبار مطلب رو ميگم. اينطوري براي اونها هم به صرفه هست. براي من هم خوبه چون نياز به پرداخت هزينه به آموزشگاه و... ندارم. اگه هزينه هر جلسه پرداخت نشه، جلسه بعد برگزار نميشه.
موفق باشيد.

رضا قربانی
یک شنبه 09 مرداد 1390, 04:02 صبح
نه چت نوشتاري هست. هر چند نفر كه باشن مهم نيست چون من يكبار مطلب رو ميگم. اينطوري براي اونها هم به صرفه هست. براي من هم خوبه چون نياز به پرداخت هزينه به آموزشگاه و... ندارم. اگه هزينه هر جلسه پرداخت نشه، جلسه بعد برگزار نميشه.
موفق باشيد.
اینطوری یک جلسه ، پاهن مثبت برای کاآموزانت می شه :لبخند:

MMSHFE
یک شنبه 09 مرداد 1390, 07:32 صبح
اينكه بد نيست. توي آموزشگاهها هم معمولاً يكي دو جلسه اول رايگانه تا ببينن از كيفيت آموزش خوششون مياد يا نه. حالا اينجا، هر جلسه به همين ترتيب هست. اگه از هر جا احساس كردن آموزش خوب نيست، ميتونن رهاش كنن. اگه دوست داشتن ادامه بدن هم مبلغ اون جلسه رو پرداخت ميكنن تا جلسه بعد برگزار بشه.

eshpilen
یک شنبه 09 مرداد 1390, 09:23 صبح
الله اکبر با چت چطوری میشه آموزش درست و حسابی داد! با عقل جور درنمیاد :لبخند:
بنظرم اگرم بشه بازدهی پایینی داره. ساعتی چقدر اونوقت؟
قبلا امتحان شده این روش؟

MMSHFE
یک شنبه 09 مرداد 1390, 09:26 صبح
چرا دوست گرامي، ميشه. مطالب به جاي اينكه گفته بشه، تايپ ميشه. اگه سرعت تايپتون خوب باشه، سريع ميشه كار كرد. حتي كاربر ميتونه آرشيو چت رو فعال كنه و بطور خودكار جزوه ها براش ذخيره بشه. بعد هم با برنامه هايي مثل Yahoo Archive Decoder آرشيو رو در قالب HTML ذخيره كنه. هزينه هر جلسه هم 10 هزار تومان هست.

eshpilen
یک شنبه 09 مرداد 1390, 09:37 صبح
هر جلسه چند ساعته خب؟

MMSHFE
یک شنبه 09 مرداد 1390, 11:06 صبح
هر جلسه بين دو الي دو و نيم ساعت هست (بسته به حجم مطلب هر جلسه، زمان طوري تنظيم ميشه كه در هر جلسه يك مطلب بطور كامل گفته بشه).

behruz999
پنج شنبه 04 خرداد 1391, 11:51 صبح
احسنت
ايده جالبيه
موفق باشيد

css-man
پنج شنبه 04 خرداد 1391, 14:39 عصر
اولا که خدا خیرت بده خیلی عالیه

دوما در مورد آموزشی که تو سایتتون گذاشتید من برای آدی که نوشته بودید پیغام دادم که جوابی هم دریافت نکردم

لطفا اگر هنوز این آموزش وجود داره اطلاع بدید

css-man
پنج شنبه 04 خرداد 1391, 14:44 عصر
کاشکی این گالری تون رو هم مرحله به مرحله توضیح میدادی تا بهتر یاد بگیریم

yazdanian
جمعه 20 بهمن 1391, 18:26 عصر
این ک کار نمیکنه دیتابیسش خطا میده