Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > ปัญหาอัพโหลดไฟล์ชื่อเป็นภาษาไทยครับ ชื่อไฟล์ด้านนอกเพี้ยน แต่ในเบสไม่เพี้ยน



 

ปัญหาอัพโหลดไฟล์ชื่อเป็นภาษาไทยครับ ชื่อไฟล์ด้านนอกเพี้ยน แต่ในเบสไม่เพี้ยน

 



Topic : 037857



โพสกระทู้ ( 28 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์




อัพแล้วชื่อ เป็นภาษาไทย แต่ตัวไฟล์เป็นภาษามั่วน่ะครับ
มีวิธีแก้ยังไงหรอครับ



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-01-28 11:54:27 By : mightmagic View : 5006 Reply : 8
 

 

No. 1



โพสกระทู้ ( 869 )
บทความ ( 2 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


แนะนำให้ ระบบตั้งชื่อไฟล์ให้เองนะ โดยให้เป็น ตัวเลขหรือตัวอักษร eng (ป้องกันการซ้ำของไฟล์ได้)
อาจจะทำ $filename=time();






Date : 2010-01-28 11:57:37 By : onedan
 


 

No. 2



โพสกระทู้ ( 28 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


ขอบคุณครับ
ถ้างั้นผมคงต้องเก็บคำอธิบายแยกไว้ซะแล้ว เอาไว้อธิบายไฟล์ตอนแสดงให้ผู้ใช้โหลด
Date : 2010-01-28 12:04:59 By : mightmagic
 

 

No. 3



โพสกระทู้ ( 1,268 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Blogger

เอานี่ไปลองใช้ดูค่ะ

Code (PHP)
<?php
$__tis620 = range(0xa1, 0xff);
$__tis620[] = 0xa0;
array_walk($__tis620, "to_char");

$__utf8 = range(0xe01, 0xe5f);
$__utf8[] = 0xa0;
array_walk($__utf8, "to_unicode");

function tis620_utf8($str) {
    global $__tis620, $__utf8;
    if (function_exists("array_combine")) {
        $str = strtr($str, array_combine($__tis620, $__utf8));
    } else {
        $str = strtr($str, _array_combine($__tis620, $__utf8));
    }
    return $str;
}

function utf8_tis620($str) {
    global $__tis620, $__utf8;
    if (function_exists("array_combine")) {
        $str = strtr($str, array_combine($__utf8, $__tis620));
    } else {
        $str = strtr($str, _array_combine($__utf8, $__tis620));
    }
    return $str;
}

function to_char(&$item, $key) {
    $item = chr($item);
}

function to_unicode(&$item, $key) {
    $item = codepoint_utf8($item);
}

function codepoint_utf8($codepoint) {
    $ascii = "";
    if ($codepoint < 0x80) {
        $ascii .= chr($codepoint);
    } elseif ($codepoint < 0x800) {
        $ascii .= chr(0xc0 | ($codepoint >> 6));
        $ascii .= chr(0x80 | ($codepoint & 0x3f));
    } elseif ($codepoint < 0x10000) {
        $ascii .= chr(0xe0 | ($codepoint >> 12));
        $ascii .= chr(0x80 | ($codepoint >> 6 ) & 0x3f);
        $ascii .= chr(0x80 | ($codepoint & 0x3f));
    } else {
        $ascii .= chr(0xf0 | ($codepoint >> 18));
        $ascii .= chr(0x80 | ($codepoint >> 12 ) & 0x3f);
        $ascii .= chr(0x80 | ($codepoint >> 6 ) & 0x3f);
        $ascii .= chr(0x80 | ($codepoint & 0x3f));
    }
    return $ascii;
}

function _array_combine($k, $v) {
    $output = array();
    for ($i = 0; $i < count($k); $i++) {
        $output[$k[$i]] = $v[$i];
    }
    return $output;
}
?>


จะใช้อยู่ 2 function คือ tis620_utf8($str) กับ utf8_tis620($str)
ในกรณีของคุณลองใช้ utf8_tis620($str) ดูค่ะ

วิธีเรียกใช้ก็ประมาณนี้ค่ะ

Code (PHP)
move_uploaded_file($_FILES['uploadfile']['tmp_name'], utf8_tis620($file));


ปล.ได้มาจากอินเตอร์เน็ตนานแล้ว จำไม่ได้ว่าจากที่นี่หรือที่ใด ขอเครดิตให้ อากู๋กูเกิล ก็แล้วกันนะคะ อิอิ
Date : 2010-01-28 14:50:25 By : ultrasiam
 


 

No. 4

Guest


ขอบคุนคับ ช่วยได้เยอะเลยยย
Date : 2011-01-29 01:30:42 By : kidjy
 


 

No. 5

Guest


ขอบคุณมากค่ะ
Date : 2011-05-11 14:22:24 By : ok
 


 

No. 6

Guest


ลองบน Windows ได้ค่ะ
แต่บน Server Linux ก็ไม่ได้อยู่ดีค่ะ
ตัดใจให้เป็น id ไปซะเลย
Date : 2011-05-11 18:15:44 By : ok
 


 

No. 7

Guest


ขอบคุณ ultrasiam มากครับ
ดีนะเซฟเวอร์ผมเป็น Windows เลยใช้ได้

ขอบคุณมากครับ
Date : 2013-01-25 11:46:43 By : nuarsenal
 


 

No. 8

Guest


ผมลองมาคิดๆดูนะครับ ถ้า sever ที่เป็น Linux นะ ผมแนะนำให้ตัด สติง หน้า ดอท(.) ออกมาครับ แล้วเปลี่ยนชื่อไฟล์เป็นภาษาอักฤษหรือ ip ก็ได้ครับ

เช่น ไฟล์ชื่อ ทดสอบระบบ.docx

ลองใช้ตามนี้ครับ
$filearray = explode(".",$filename);

พอตัดออกมาแล้วจะได้ array 2 ตัวครับ คือ ทดสอบระบบ และ docx ครับ

ลอง echo ออกมาดูก็ได้นะครับ

$showfilename = $filearray[0];
$showDotFile = $filearray[1];


เราก็นำเอา $showfilename (ทดสอบระบบ) ไปเก็บไว้ในฐานข้อมูลครับ
Date : 2013-01-25 12:11:19 By : nuarsenal
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ปัญหาอัพโหลดไฟล์ชื่อเป็นภาษาไทยครับ ชื่อไฟล์ด้านนอกเพี้ยน แต่ในเบสไม่เพี้ยน
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่