View Full Version : مشكل در آپلود تصاوير با نام فارسي؟؟؟
vatansever
دوشنبه 27 آبان 1392, 12:14 عصر
سلام دوستان
من كد زير رو واسه آپلود تصوير استفاده ميكنم .
وقتي نام عكسي كه فارسيه رو انتخاب ميكنم تصوير اپلود ميشه ولي نام فايل رو اينجوري "ظ…طظ…ط¯ .M.
(822).jpg" ذخيره ميكنه.
چه چيز بايد به كد اضافه كنم؟
$username=$_POST['user'];
//fayllar ki zaxira ola bilar .
$allowedtypes = array ("image/jpeg","image/pjpeg","image/png","image/gif");
//ha zaxira olsun.
//agar fayl motabardi
if (isset ($_FILES['myfile'])){
//icaza verilar fayllarin icindadi ya yox.
if (in_array ($_FILES['myfile']['type'], $allowedtypes)){
//kopi ela.
if ($_FILES['myfile']['error'] == 0){
$savefolder = $username;
$thefile = $savefolder . "/" . $_FILES['myfile']['name'];
if (!move_uploaded_file ($_FILES['myfile']['tmp_name'], $_FILES['myfile']['name'])){
echo "eror.";
}
smksmk
سه شنبه 28 آبان 1392, 15:11 عصر
سلام
string iconv ( string $in_charset , string $out_charset , string $MyText )
vatansever
چهارشنبه 29 آبان 1392, 10:59 صبح
سلام
string iconv ( string $in_charset , string $out_charset , string $MyText )
ميشه يكم توضيح بدين من هر چي دستكاريش كردم ارور داد.(پارامترها؟)
كد رو هم حتما بايد به اين شكل بنويسم نه ؟ اخه ارور ميده
iconv ( $in_charset , $out_charset , $MyText )
smksmk
چهارشنبه 29 آبان 1392, 11:07 صبح
دوست عزیز
in_charset کاراکتر ورودی هست و out_charset کاراکتر خروجیت . مثلاً اینطوری :
iconv("UTF-8", "ISO-8859-1", $text)
vatansever
چهارشنبه 29 آبان 1392, 13:08 عصر
دوست عزیز
in_charset کاراکتر ورودی هست و out_charset کاراکتر خروجیت . مثلاً اینطوری :
iconv("UTF-8", "ISO-8859-1", $text)
وقتي فايلي كه فارسيه رو انتخاب ميكنم اين error رو ميده :
Notice: iconv() [function.iconv]: Detected an illegal character in input string in C:\wamp\www\process_upload.php on line 101
هيچ تغييري هم رو فايل اپلود شده ايجاد نميشه:متفکر:
ببينيد كدي كه شما فرمودين رو درست جايي نوشتم؟
iconv("UTF-8", "ISO-8859-1",
$_FILES['myfile']['name']);
$username=$_POST['user'];
//Allowed file MIME types.
$allowedtypes = array
("image/jpeg","image/pjpeg","image/
png","image/gif","sound/mp3");
//Where we want to save the file to.
//If we have a valid file
if (isset ($_FILES['myfile'])){
//Then we need to confirm it is of a
file type we want.
if (in_array ($_FILES['myfile']['type'],
$allowedtypes)){
//Then we can perform the copy.
if ($_FILES['myfile']['error'] == 0){
$savefolder = $username;
$thefile = $savefolder . "/" . $_FILES
['myfile']['name'];
if (!move_uploaded_file ($_FILES
['myfile']['tmp_name'], $_FILES
['myfile']['name'])){
echo "There was an error uploading
the file.";
}
smksmk
چهارشنبه 29 آبان 1392, 14:32 عصر
این هم کد کامل
<?php
header('Content-Type: text/html;charset=UTF-8');
$username=$_POST['user'];
$allowedtypes = array("image/jpeg","image/pjpeg","image/png","image/gif","sound/mp3");
if(isset($_FILES['myfile']))
{
if (in_array($_FILES['myfile']['type'],$allowedtypes))
{
if ($_FILES['myfile']['error'] == 0)
{
$savefolder = '/uploads';
$thefile = $savefolder . "/" . $_FILES['myfile']['name'];
if (!move_uploaded_file ($_FILES['myfile']['tmp_name'],iconv("UTF-8", "UTF-8", $_FILES['myfile']['name'])))
{
echo "There was an error uploading the file.";
}
}
}
}
?>
MMSHFE
چهارشنبه 29 آبان 1392, 14:44 عصر
$farsiName = iconv('utf-8', 'windows-1256', str_replace('ی', 'ي', str_replace('ک', 'ك', $_FILES['upload']['name'])));
دقت کنید که ادیتور برنامه نویس خوب نشون نمیده. همین کد رو کپی و توی برنامه خودتون Paste کنید و از farsiName$ بعنوان اسم فایل برای ذخیره سازی استفاده کنید تا فایل با اسم فارسی ذخیره بشه.
smksmk
چهارشنبه 29 آبان 1392, 14:55 عصر
اگه روی لوکال هاست داری تست میکنی این جواب میده که مدیر فرمودن :
$farsiName = iconv('utf-8', 'windows-1256', str_replace('ی', 'ي', str_replace('ک', 'ك', $_FILES['upload']['name'])));
اگه روی هاست لینوکسی میخای ببریش :
$farsiName = iconv('utf-8', 'utf-8', str_replace('ی', 'ي', str_replace('ک', 'ك', $_FILES['upload']['name'])));
یعنی کاراکتر ست دوم هم utf-8 باشه .
هردوی اینا هم به شرطیه که charset صفحه یا فرمی که داری اطلاعات رو میفرستی باهاش به این صفحه utf-8 باشه .
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.