PDA

View Full Version : ساخت آدرس جدید برای عکس



krasus
دوشنبه 04 اسفند 1393, 01:56 صبح
سلام
من توی برنامه ای که با PHP نوشتم از یک سری مجموعه عکس استفاده می کنم که همشون توی یه فولدر هستن و اسم این عکس ها براساس تاریخ و زمان آپلود عکس تنظیم شده.
حالا من می خوام وقتی کاربرای برنامه عکس ها رو می بینن نتونن آدرس عکس و نام عکس رو تشخیص بدن.
البته اگه بشه یه کاری کرد که هر بار که کاربر عکس رو لود می کنه یه آدرس جدید برای عکس ساخته بشه که خیلی عالی میشه.(یعنی دفعه اول که عکس رو می بینه مثلا آدرسش باشه
www.domain.com/folder/img1.jpg و دفعه دوم که عکس رو می بینه آدرسش بشه www.domain.com/folder/img2.jpg) اگه بشه یه شماره رندم برای اسم عکس موقع فرستادن آدرس عکس به کاربر درست کرد خیلی عالی میشه.

abbas-software
چهارشنبه 13 اسفند 1393, 14:52 عصر
- فکر میکنم روشی که در اینجا (http://hashmode.com/hide-image-path-php/9) گفته شده، برای چیزی که میخواید مناسب باشه.

- روش دیگه هم میتونه استفاده از بافر باشه، البته بافر یکم کاربردش متفاوته و شاید همون روش قبلی از نظر فشار روی سرور و این مسائل بهتر باشه.
روش کار اینجوریه که کد زیر رو در یک فایل جداگانه میذارید مثلا به اسم image.php :



if(isset($_GET['src']))
{
ob_start(); //هر خروجی بعد از این خط بافر خواهد شد

header("Content-type: image/jpeg"); //نوع فایل که عکس هست رو مشخص میکنیم
echo $file= file_get_contents('/image_folder/'.$_GET['src']); // ذخیره عکس در بافر

$image = ob_get_contents(); // ذخیره در یک متغیر
ob_end_clean(); //اتمام بافرینگ

$filename='img'.uniqid().'.jpg'; //اسم دلخواه
header("Content-Disposition: inline; filename=\"".$filename."\""); //مشخص کردن خروجی و اسم عکس
echo $image; // دادن به خروجی
}



در جایی که میخواید عکس رو استفاده کنید به جای آدرس عکس مثلا این کد رو میذارید:

<img width="200" src="image.php?src=img1.jpg"/>

البته اینجوری اسم عکس مشخص هست ولی دیگه آدرسش مشخص نیست.

نکته دیگه اینکه با اینکار آدرس عکس ها هربار عوض میشه و این از نظر سرعت باز شدن صفحات و کش عکس ها در سمت کلاینت شاید خوب نباشه، چون مثل اینه که هربار عکس جدیدی قراره لود بشه...

یک روش دیگه هم استفاده از htaccess و RewriteRule هستش که میتونید در موردش تحقیق کنید... :)