PDA

View Full Version : سوال: سازگاري نام عكس با فارسي هنگام آپلود (حل شد)



ravand
سه شنبه 09 خرداد 1391, 14:45 عصر
سلام
من ميخوام وقتي عكسي رو آپلود ميكنم نامش با فارسي سازگار باشه و بهم ريخته نباشه.
مثلا اينطوري :

نام عكس.jpg
ولي نميدونم چرا اينطوري ميشه:

جدول افزايش دسمزدها
متشكرم.

mtchabok
چهارشنبه 10 خرداد 1391, 12:06 عصر
سلام
متاسفانه این امکان فعلا وجود نداره که در هنگام آپلود فایل به صورت واقعی نامهای فارسی رو ذخیره کرد .
میتونید از ترفندهایی که در انجمن مطرح شده ، استفاده کنید .

djsaeedkhan
چهارشنبه 10 خرداد 1391, 14:49 عصر
سلام
هیچ کس اینکار رو نمی کنه. معمولا میان یه فیلد در دیتابیس میذارن که نام فایلرو ذخیره کنه و عکس رو به یه اسم منحصر به فرد تغییر میدن
اونوقت هروقت فایل درخواست شد اسم مورد نظر رو جایگزینش می کنن

ravand
چهارشنبه 10 خرداد 1391, 19:14 عصر
سلام
هیچ کس اینکار رو نمی کنه. معمولا میان یه فیلد در دیتابیس میذارن که نام فایلرو ذخیره کنه و عکس رو به یه اسم منحصر به فرد تغییر میدن
اونوقت هروقت فایل درخواست شد اسم مورد نظر رو جایگزینش می کنن

يعني منظور شما اينه كه وقتي عكس آپلود ميشه هنگام آپلود شدن نام عكس هم تغيير بكنه؟
حالا چجوري بايد اين كار رو بكنم؟
متشكرم.

MMSHFE
چهارشنبه 10 خرداد 1391, 19:46 عصر
دوستان عزیز کی گفته PHP نمیتونه با نام فارسی فایل رو ذخیره کنه؟ به این مثال دقت کنید:


<?php
if(isset($_FILES['photo'])) {
$file = &$_FILES['photo'];
$persian_name = iconv('windows-1256', 'utf-8', str_replace('ی', 'ي', $file['name']));
move_uploaded_file($file['tmp_name'], $persian_name);
}
?>

فقط موقع نمایش حواستون باشه که از فرمت Windows-1256 (یعنی Arabic) باید استفاده کنید. مثلاً اینطوری:


<?php
$currentDir = getcwd();
chdir('/images');
$photos = glob('{*.jpg,*.png,*.gif,*.bmp}', GLOB_BRACE);
foreach($photos as $photo) {
$english_name = str_replace('ي', 'ی', iconv('utf-8', 'windows-1256', $photo));
echo '<p><img src="/images/'.$english_name.'"/></p>'.PHP_EOL;
}
chdir($currentDir);
?>

موفق باشید.