PDA

View Full Version : سوال: عدم پشتیبانی کاراکترهای فارسی حین ذخیره تصویر در fileupload



eminem.encore
سه شنبه 14 آذر 1391, 20:39 عصر
با سلام - وقتی می خوام تصویری در browse کنم با استفاده از fileupload نام تصویر ذخیره شده به شکل نامناسب در می آید . میشه بگید چطور این مشکل رو حل کنم؟ با تشکر


$img_product="C:/xampp/htdocs/products_shop/img/products_img/";
if (is_uploaded_file($_FILES['img_upload']['tmp_name']))
{
move_uploaded_file($_FILES['img_upload']['tmp_name'],$img_product . $name . '.jpg');
echo 'فایل آپلود شد';
}

$ M 3 H R D A D $
سه شنبه 14 آذر 1391, 21:06 عصر
اسم عکس و کد کن با md5
اسم عکس و با $_FILES بگیر
پسوند و هم همینطور
با md5 یک رشته تولید کن
و پسوند و با اون رشته + کاراکتر نقطه الحاق کن
نهایتن با اون اسم آپلود کن
یا آپلود کن و رینیم کن

eminem.encore
سه شنبه 14 آذر 1391, 22:00 عصر
این هایی که گفتی رو نمیشه با یه مثال کد بهم بگین؟

$ M 3 H R D A D $
سه شنبه 14 آذر 1391, 22:22 عصر
move_uploaded_file($_FILES['img_upload']['tmp_name'],$img_product . md5($name) . '.jpg');

eminem.encore
سه شنبه 14 آذر 1391, 22:59 عصر
آقا دستت درد نکنه حل شد اما نمیخوام متن عکسم بصورت رمزگذاری شده دربیاد مثلاً نام عکس رو که می خوام فارسی بزارم میخوام همون نام فارسی نام عکسم بشه. اما نمیشه بعد اینکه تغییر نام میدم بازهمون کلمات عجیب و غریب میاد.


if (is_uploaded_file($_FILES['img_upload']['tmp_name']))
{
move_uploaded_file($_FILES['img_upload']['tmp_name'],$img_product .md5($name) . '.jpg');
rename('img/products_img/' . md5($name) . '.jpg','img/products_img/' .$name. '.jpg');
echo 'فایل آپلود شد';
}

$ M 3 H R D A D $
سه شنبه 14 آذر 1391, 23:40 عصر
خوب تز توابع utf8 convert استفاده کن
یا اینکه تابع زیرو واسه خوندن اسم استفاده کن


function western_to_persian($str) {
$alphabet = array (
'Û°' => '۰', 'Û±' => '۱', 'Û²' => '۲', 'Û³' => '۳', 'Û´' => '۴', 'Ûµ' => '۵', 'Û¶' => '۶', 'Û·' => '۷', 'Û¸' => '۸',
'Û¹' => '۹', 'Ø¢' => 'آ', 'ا' => 'ا', 'Ø£' => 'أ', 'Ø¥' => 'إ', 'ؤ' => 'ؤ', 'ئ' => 'ئ', 'Ø¡' => 'ء', 'ب' => 'ب',
'Ù¾' => 'پ', 'ت' => 'ت', 'Ø«' => 'ث', 'ج' => 'ج', 'Ú†' => 'چ', 'Ø­' => 'ح', 'Ø®' => 'خ', 'د' => 'د', 'Ø°' => 'ذ',
'ر' => 'ر', 'ز' => 'ز', 'Ú˜' => 'ژ', 'س' => 'س', 'Ø´' => 'ش', 'ص' => 'ص', 'ض' => 'ض', 'Ø·' => 'ط', 'ظ' => 'ظ',
'ع' => 'ع', 'غ' => 'غ', 'ف' => 'ف', 'Ù‚' => 'ق', 'Ú©' => 'ک', 'Ú¯' => 'گ', 'Ù„' => 'ل', 'Ù…' => 'م', 'Ù†' => 'ن',
'Ùˆ' => 'و', 'Ù‡' => 'ه', 'ÛŒ' => 'ی', 'ÙŠ' => 'ي', 'Û€' => 'ۀ', 'Ø©' => 'ة', 'ÙŽ' => 'َ', 'ُ' => 'ُ', 'ِ' => 'ِ',
'Ù‘' => 'ّ', 'Ù‹' => 'ً', 'ÙŒ' => 'ٌ', 'ٍ' => 'ٍ', 'ØŒ' => '،', 'Ø›' => '؛', ',' => ',', 'ØŸ' => '؟'
);

foreach($alphabet as $western => $fa)
$str = str_replace($western, $fa, $str);

return $str;
}

MMSHFE
چهارشنبه 15 آذر 1391, 00:20 صبح
بابا چرا اینهمه دردسر رو تحمل میکنید؟ از iconv استفاده کنید:


$name = $_FILES['photo']['name'];
$unicode = iconv('windows-1256', 'utf-8', $name);

حالا موقع ذخیره کردن فایل، از name$ استفاده کنید و موقع نمایش توی صفحه unicode$ رو بکار ببرین.

$ M 3 H R D A D $
چهارشنبه 15 آذر 1391, 09:29 صبح
گفتم از convert استفاده کن اینم که مدیر گفت خود خودش بود