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 > อัพโหลดไฟล์ลงฐานเป็นภาษาไทย แต่พออัพเข้า folder มันเป็นภาษาแปลกๆ แก้ยังไง ช่วยแนะแนวทางหน่อย



 

อัพโหลดไฟล์ลงฐานเป็นภาษาไทย แต่พออัพเข้า folder มันเป็นภาษาแปลกๆ แก้ยังไง ช่วยแนะแนวทางหน่อย

 



Topic : 122157



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



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




อัพโหลดไฟล์ลงฐานเป็นภาษาไทย แต่พออัพเข้า folder มันเป็นภาษาแปลกๆ แก้ยังไง ช่วยแนะแนวทางหน่อย

ด

เป็นภาษาแบบนี้



Tag : PHP, Ms Access, MySQL, HTML/CSS, JavaScript, VBScript







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2016-03-28 02:50:40 By : iceZzz View : 849 Reply : 6
 

 

No. 1



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



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


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

เซียนๆ หลายท่านในนี้ ไม่ค่อยมีใครใช้ เซฟเป็นภาษาไทย กันครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-03-28 04:18:38 By : Chaidhanan
 


 

No. 2



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

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

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

เปลี่ยนเป็นภาษาอังกฤษครับ ไม้งั้นปัญหาการจัดเก็บและการนำไปใช้จะตามมาแน่นอนครับ


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-03-28 13:42:41 By : mr.win
 

 

No. 3



โพสกระทู้ ( 5,105 )
บทความ ( 4 )

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

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


ถ้า user เข้าทำไฟล์เป็นภาษาไทยก็ให้เขาทำไปครับ แต่ก็บังคับเขาหน่อยตั้งชื่อไฟล์เป็นภาษาไทย อย่างมี ช่องว่าง อย่ามาจุดนะ ถ้าจะเว้นว่างให้ใช้ - ขีดกลางคั่น เช่น ประกาศรับสมัครงานครั้งที่-1-2559.pdf
จากนั้นก็ตัดเอา ประกาศรับสมัครงานครั้งที่-1-2559 ไปเก็บในตารางข้อมูล ทำชื่อไฟล์ใหม่ไปแทน เช่น 20160328_001.pdf
เอาไฟล์ใหม่อัพไว้ในพาธที่ต้องการ แล้วเอาชื่อ 20160328_001.pdf ไปเก็บไว้ record เดียวกับชื่อภาษาไทย
หน้าแสดงข้อมูลก็แสดง
< a herf="20160328_001.pdf">ประกาศรับสมัครงานครั้งที่-1-2559</a> //หรือ
< a herf="20160328_001.pdf">ประกาศรับสมัครงานครั้งที่-1-2559.pdf</a>

- ยูเซอร์เขาไม่รู้หรอกครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-03-28 15:09:08 By : apisitp
 


 

No. 4

Guest


Code (PHP)
	include_once("function/productaccess.php");
	error_reporting(0);
	$pname = $_REQUEST['pname'];
	$pcode = $_REQUEST['pcode']; // first data form
	$pprice = $_REQUEST['pprice'];
	$pcolor = $_REQUEST['pcolor'];
	$pcategory = $_REQUEST['pcategory'];
	$pdescription = $_REQUEST['pdescription'];
	
	if(isset($_FILES['pimg']['name'])){		
		for($i=0;$i<count($_FILES['pimg']['name']);$i++){
			$c = count($_FILES['pimg']['name']);
			if($i >= $c-1){
				 header('Location: http://localhost/p-shop/');      
			}	
			$imgname = $_FILES['pimg']['name'][$i];
			list($picname, $pictype) = explode(".", $imgname);
			$filepicname = substr(str_replace(" ", "_", $imgname), 0);
			$pnamed = iconv("UTF-8","TIS-620", $pnames = substr(str_replace(" ", "_", $pname), 0));
			$folderlocal = "product/img/$pnamed/";
			$foldersql = "product/".img."/".$pnames = substr(str_replace(" ", "_", $pname), 0)."/";
			mkdir($folderlocal);			
			$pimgs = $foldersql.$filepicname;
			include_once("function/productaccess.php");
			$last_id = lastupdateid();
			$pcoded = $pcode.($last_id[0] + $i);
			$checkdup = dupplicate($pcode);
			if($checkdup != null){
				echo "<script> alert('dupplicate pcode');</script>";
			}elseif($checkdup == null){
				$img = $folderlocal."/".$filepicname;
				move_uploaded_file($_FILES['pimg']['tmp_name'][$i],$img);
				$createnewproduct = createnewproduct($pname,$pcoded,$pprice,$pcolor,$pcategory,$pdescription,$pimgs);	 				
			}					
		}
	}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-03-28 21:02:21 By : banditt
 


 

No. 5



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



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


http://stackoverflow.com/questions/6467501/php-how-to-create-unicode-filenames
หัวข้อ Using the com_dotnet PHP extension,

โมฯเพิ่ม เอาหน่อยนะครับ
ยังใช้ fopen fwrite ไม่ได้

ส่วน move_uploaded_file(); จะได้หรือเปล่าไม่ได้ลอง
และตอนอ่าน จะเอาชื่อมายังไงก็ไม่ได้ทดลองเหมือนกัน

โค๊ดที่ใช้เทสต์
Code (PHP)
include("thaipath/winwrapper.php");
stream_wrapper_register('win', 'Patchwork\Utf8\WinFsStreamWrapper');
$dr = "งานภาษาไทย";
$nm = 'ชัยธนันท์.txt';
mkdir('win://'.$dr);
fwrite(fopen('test.txt', 'a'), 'ทดสอบภาษาไทย');
rename('win://test.txt', 'win://'.$dr.'/'.$nm);


winwrapper.php
Code (PHP)
<?php // vi: set fenc=utf-8 ts=4 sw=4 et:
/*
* Copyright (C) 2014 Nicolas Grekas - [email protected]
*
* This library is free software; you can redistribute it and/or modify it
* under the terms of the (at your option):
* Apache License v2.0 (http://apache.org/licenses/LICENSE-2.0.txt), or
* GNU General Public License v2.0 (http://gnu.org/licenses/gpl-2.0.txt).
*/
namespace Patchwork\Utf8;
/**
* Unicode UTF-8 aware stream based filesystem access on MS-Windows.
*
* Based on COM Scripting.FileSystemObject object and short paths.
* Enabled by e.g.: stream_wrapper_register('win', 'Patchwork\Utf8\WinFsStreamWrapper');
*
* See also https://code.google.com/p/php-wfio/ for a PHP extension
* and comments on http://www.rooftopsolutions.nl/blog/filesystem-encoding-and-php
*/
class WinFsStreamWrapper{
	public $context;
	protected $handle;
	static function hide($path){
		list($fs, $path) = self::fs($path);
		if ($fs->FileExists($path)) $fs->GetFile($path)->Attributes |= 2;
		else if ($fs->FolderExists($path)) $f = $fs->GetFolder($path)->Attributes |= 2;
		else return false;
		return true;
	}
	static function fs($path, $is_utf8 = true){
		static $fs;
		isset($fs) or $fs = new \COM('Scripting.FileSystemObject', null, CP_UTF8);
		$path = explode('://', $path, 2);
		$path = $path[(int) isset($path[1])];
		$path = strtr($path, '/', '\\');
		$pre = '';
		if (! isset($path[0]) || ( '/' !== $path[0] && '\\' !== $path[0] && false === strpos($path, ':'))){
			$pre = getcwd() . '\\';
		}
		$pre = new \VARIANT($pre);
		if ($is_utf8) $path = new \VARIANT($path, VT_BSTR, CP_UTF8);
		else $path = new \VARIANT($path);
		return array($fs, $fs->getAbsolutePathName(variant_cat($pre, $path)));
	}
	function dir_closedir(){
		$this->handle = null; return true;
	}
	function dir_opendir($path, $options){
		list($fs, $path) = self::fs($path);
		if (! $fs->FolderExists($path)) return false;
		$dir = $fs->GetFolder($path);
		try{
			$f = array('.', '..');
			foreach ($dir->SubFolders() as $v) $f[] = $v->Name;
			foreach ($dir->Files        as $v) $f[] = $v->Name;
		}catch (\Exception $f){
			$f = array();
		}
		$this->handle = $f; return true;
	}
	function dir_readdir(){
		if (list(, $c) = each($this->handle)) return $c;
		return false;
	}
	function dir_rewinddir(){
		reset($this->handle); return true;
	}
	function mkdir($path, $mode, $options){
		list($fs, $path) = self::fs($path);
		try{
			if ($options & STREAM_MKDIR_RECURSIVE){
				$path = $fs->GetAbsolutePathName($path);
				$path = explode('\\', $path);
				if (isset($path[3]) && '' === $path[0] . $path[1]){
					$pre = '\\\\' . $path[2] . '\\' . $path[3] . '\\'; $i = 4;
				}else if (isset($path[1])){
					$pre = $path[0] . '\\'; $i = 1;
				}else{
					$pre = ''; $i = 0;
				}
				while (isset($path[$i]) && $fs->FolderExists($pre . $path[$i])){
					$pre .= $path[$i++] . '\\';
				}
				if (! isset($path[$i])) return false;
				while (isset($path[$i])){
					$fs->CreateFolder($pre .= $path[$i++] . '\\');
				}
				return true;
			}else{
				$fs->CreateFolder($path);
			}
			return true;
		}catch (\Exception $e){
			return false;
		}
	}
	function rename($from, $to){
		list($fs, $to) = self::fs($to);
		if ($fs->FileExists($to) || $fs->FolderExists($to)){
			return false;
		}
		list(,$from) = self::fs($from);
		try{
			if ($fs->FileExists($from)){
				$fs->MoveFile($from, $to); return true;
			}
			if ($fs->FolderExists($from)){
				$fs->MoveFolder($from, $to); return true;
			}
		}catch (\Exception $e) {}
		return false;
	}
	function rmdir($path, $options){
		list($fs, $path) = self::fs($path);
		if ($fs->FolderExists($path)) return rmdir($fs->GetFolder($path)->ShortPath); return false;
	}
	// @todo function stream_cast($cast_as)
	function stream_close(){
		fclose($this->handle); $this->handle = null; 
	}
	function stream_eof(){
		return feof($this->handle);
	}
	function stream_flush(){
		return fflush($this->handle);
	}
	function stream_lock($operation){
		return flock($this->handle, $operation);
	}
	function stream_metadata($path, $option, $value){
		list($fs, $path) = self::fs($path);
		if ($fs->FileExists($path)) $f = $fs->GetFile($path);
		else if ($fs->FileExists($path)) $f = $fs->GetFolder($path);
		else $f = false;
		if (STREAM_META_TOUCH === $option){
			if ($f) return touch($f->ShortPath);
			try{
				$fs->OpenTextFile($path, 8, true, 0)->Close(); return true;
			}catch (\Exception $e) {}
		}
		if (! $f) return false;
		switch ($option){
			case STREAM_META_ACCESS:     return chmod($f->ShortPath, $value);
			case STREAM_META_OWNER: 
			case STREAM_META_OWNER_NAME: return chown($f->ShortPath, $value);
			case STREAM_META_GROUP:
			case STREAM_META_GROUP_NAME: return chgrp($f->ShortPath, $value);
			default: return false;
		}
	}
	function stream_open($path, $mode, $options, &$opened_path){
		$mode .= ''; list($fs, $path) = self::fs($path);
		if ($fs->FolderExists($path)) return false;
		try{
			if ('x' === $m = substr($mode, 0, 1)){
				$fs->CreateTextFile($path, false)->Close();
				$f = $fs->GetFile($path); $mode[0] = 'w';
			}else{
				$f = $fs->GetFile($path);
			}
		}catch (\Exception $f){
			try{ 
				switch ($m){
					case 'w': case 'c': case 'a':
						$h = $fs->CreateTextFile($path, true); 
						$f = $fs->GetFile($path); $h->Close(); break;
					default: return false;
				}
			}catch (\Exception $e){
				return false;
			}
		}
		if (! (STREAM_REPORT_ERRORS & $options)){
			set_error_handler('var_dump', 0); $e = error_reporting(0);
		}
		$this->handle = fopen($f->ShortPath, $mode);
		if (! (STREAM_REPORT_ERRORS & $options)){
			error_reporting($e); restore_error_handler();
		}
		if ($this->handle) return true; 
		if (isset($h)) $f->Delete(true);
		return false;
	}
	function stream_read($count){
		return fread($this->handle, $count);
	}
	function stream_seek($offset, $whence = SEEK_SET){
		return fseek($this->handle, $offset, $whence);
	}
	function stream_set_option($option, $arg1, $arg2){
		switch ($option){
			case STREAM_OPTION_BLOCKING:     return stream_set_blocking($this->handle, $arg1);
			case STREAM_OPTION_READ_TIMEOUT: return stream_set_timeout($this->handle, $arg1, $arg2);
			case STREAM_OPTION_WRITE_BUFFER: return stream_set_write_buffer($this->handle, $arg1, $arg2);
			default: return false;
		}
	}
	function stream_stat(){
		return fstat($this->handle);
	}
	function stream_tell(){
		return ftell($this->handle);
	}
	function stream_truncate($new_size){
		return ftruncate($this->handle, $new_size);
	}
	function stream_write($data){
		return fwrite($this->handle, $data, strlen($data));
	}
	function unlink($path){
		list($fs, $path) = self::fs($path);
		if ($fs->FileExists($path)) return unlink($fs->GetFile($path)->ShortPath); 
		return false; 
	}
	function url_stat($path, $flags){
		list($fs, $path) = self::fs($path);
		if ($fs->FileExists($path)) $f = $fs->GetFile($path);
		else if ($fs->FolderExists($path)) $f = $fs->GetFolder($path);
		else return false;
		if (STREAM_URL_STAT_QUIET & $flags){
			set_error_handler('var_dump', 0); $e = error_reporting(0);
		}
		if (STREAM_URL_STAT_LINK & $flags) $f = lstat($f->ShortPath);
		else $f = stat($f->ShortPath);
		if (STREAM_URL_STAT_QUIET & $flags){
			error_reporting($e); restore_error_handler();
		} 
		return $f;
	}
}



ประวัติการแก้ไข
2016-03-29 08:22:57
2016-03-29 08:25:19
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-03-29 08:18:43 By : Chaidhanan
 


 

No. 6



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

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

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


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-03-29 09:13:48 By : mr.win
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : อัพโหลดไฟล์ลงฐานเป็นภาษาไทย แต่พออัพเข้า folder มันเป็นภาษาแปลกๆ แก้ยังไง ช่วยแนะแนวทางหน่อย
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 03
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 อัตราราคา คลิกที่นี่