|
|
|
ปัญหา upload ไฟล์ ที่มีชื่อเป็นภาษาไทย เวลาอัพโหลดไฟล์เอกสารที่มีชื่อเป็นภาษาไทย พอไปเก็บใน folder มันกลายเป็น เธเธฅเธเธฒเธฃเธ— |
|
|
|
|
|
|
|
เวลาอัพโหลดไฟล์เอกสารที่มีชื่อเป็นภาษาไทย พอไปเก็บใน folder มันกลายเป็น
เธเธฅเธเธฒเธฃเธ—เธณเธเธฒเธเธเธญ
แบบนี้ค่ะ ทำให้เวลาจะลิงค์ไปหาไฟล์นนี้มันก้อเลยไม่เจอ นี่โค้ดค่ะ
Code (PHP)
<?php
ob_start();
include("connect.php"); ?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<?
$chap_id = $_POST["chapid"];
$title = $_POST["title"];
$des = $_POST["des"];
$type = 2;
//$file = iconv("UTF-8", "TIS-620", $HTTP_POST_FILES["fileUpload"]["name"]);
$file = $HTTP_POST_FILES["fileUpload"]["name"];
$path= "myfile/".$file;
echo $file;
echo " ";
echo $path;
copy($HTTP_POST_FILES["fileUpload"]["tmp_name"], $path); // Copy File ไว้ที่ Folder File
$add = "insert into addition(chap_id,add_title,add_des,add_type,add_resource) values('$chap_id','$title','$des','$type','$path')";
mysql_query($add) or die("Insert Error");
echo "<script>alert('เพิ่มเนื้อหาเสริมเรียบร้อยแล้ว');window.location='manageAddPage.php';</script>";
//echo $file;
ob_end_flush();
mysql_close();
?>
แต่เวลาดูใน db ที่ column add_resource มันเก็บได้นะคะ อย่างในรูปข้างล่าง ช่องสีเหลืองอ่ะค่ะ
---------------------------------------------------------------------------------------------
แต่พอเขียนโค้ดใหม่ โดยใช้ iconv เข้ามาช่วย เวลาเก็บในโฟลเดอร์ มันเก็บเป็นภาษาไทยถูกต้องค่ะ แต่เวลาดูใน db มันจะไม่มีลิงค์ไปที่ชื่อไฟล์อ่ะค่ะ จะลิงค์ไปแค่ชื่อโฟล์เดอร์ myfile แค่นั้น
นี่โค้ดใหม่ที่ใช้ iconv เข้ามาช่วยค่ะ
Code (PHP)
<?php
ob_start();
include("connect.php"); ?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<?
$chap_id = $_POST["chapid"];
$title = $_POST["title"];
$des = $_POST["des"];
$type = 2;
$file = iconv("UTF-8", "TIS-620", $HTTP_POST_FILES["fileUpload"]["name"]);
//$file = $HTTP_POST_FILES["fileUpload"]["name"];
$path= "myfile/".$file;
echo $file;
echo " ";
echo $path;
copy($HTTP_POST_FILES["fileUpload"]["tmp_name"], $path); // Copy File ไว้ที่ Folder File
$add = "insert into addition(chap_id,add_title,add_des,add_type,add_resource) values('$chap_id','$title','$des','$type','$path')";
mysql_query($add) or die("Insert Error");
echo "<script>alert('เพิ่มเนื้อหาเสริมเรียบร้อยแล้ว');window.location='manageAddPage.php';</script>";
//echo $file;
ob_end_flush();
mysql_close();
?>
แต่ใน db มันไม่ลิงค์ไปชื่อไฟล์ค่ะ เป็นแบบรูปข้างล่างนี้ค่ะ แบบช่องสีเหลืองอ่ะค่ะ
จะแก้ยังไงดีคะ
Tag : - - - -
|
|
|
|
|
|
Date :
2009-08-30 01:09:26 |
By :
pochiiez |
View :
24956 |
Reply :
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
ลองเปลี่ยนเป็น
<meta http-equiv="Content-Type" content="text/html; charset=TIS620">
หรือ
<meta http-equiv="Content-Type" content="text/html; charset=TIS-620">
หรือ
<meta http-equiv="Content-Type" content="text/html; charset=WINDOWS-870"> (อันนี้ไม่แน่ใจ ไม่ได้ใช้ดรีมวีพเวอร์มานาน)
ถ้ายังไม่ได้อีก ตัดปัญหาด้วยการเซฟเป็นชื่อที่เราตั้งไว้ แบบว่าตั้งให้ระบบกำหนดเอง จะได้ป้องกันปัญหาชื่อซ้ำกันได้ด้วย
|
|
|
|
|
Date :
2009-08-30 07:10:54 |
By :
monotakari |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
กลับไปใช้แบบ ไม่เอา iconv มาใช้นะครับ เพราะบันทึกลงฐานข้อมูลได้
ส่วนหน้าแสดงให้ใช้
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
และเพิ่มในไฟล์ connect.php ด้วย mysql_query("SET NAMES UTF8");
นะครับ
|
|
|
|
|
Date :
2009-08-30 15:47:35 |
By :
lozomac |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองแก้ตามแล้ว ทั้ง 2 แบบเลย ไม่ได้ค่ะ ทำไงดีคะ
แล้วถ้าจะ rename ชื่อไฟล์ ทำไงคะ
ช่วยด้วยค่ะ
|
|
|
|
|
Date :
2009-08-31 20:24:21 |
By :
pochiiez |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
HTTP_POST_FILES ถ้าจะใช้นี่ต้องไปเปิด register_long_arrays = On นะครับถ้าผมจำไม่ผิด
|
|
|
|
|
Date :
2009-08-31 20:34:04 |
By :
plakrim |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณ คุณ casper มากนะครับ
|
|
|
|
|
Date :
2010-05-25 23:02:56 |
By :
Prach Konphet |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณ casper มากๆครับ
|
|
|
|
|
Date :
2012-01-24 10:28:03 |
By :
nuarsenal |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากเด้อ
|
|
|
|
|
Date :
2012-02-22 17:37:36 |
By :
โอเล่ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณค๊า :)
|
|
|
|
|
Date :
2012-02-23 00:39:30 |
By :
Doremeez |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("mydatabase");
mysql_query("SET NAMES UTF8");
หรือไม่ลองดูพวก iconv() ได้แน่นอนครับ
Go to : แก้ปัญหาภาษาไทย php กับ MySQL (TIS-620 กับ UTF-8)
|
|
|
|
|
Date :
2012-02-23 06:10:16 |
By :
webmaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$fileupload = $_FILES['fileupload']['tmp_name'];
$fileupload_name = $_FILES['fileupload']['name'];
$fileupload_size = $_FILES['fileupload']['size'];
$fileupload_type = $_FILES['fileupload']['type'];
$ext = strtolower(end(explode('.', $fileupload_name))); //นามสกุลไฟล์
$ymdnow = date("Y-m-d H:i:s");
$fname = explode('.', $fileupload_name);
$filename = date("YmdHis")."-".$fname[0].".".$ext;
$filename2 = iconv("UTF-8", "windows-874", $filename);
copy($fileupload, "$dir/$filename2");
ตอน ก็อปปี้ไฟล์ ใช้เป็น $filename2
ตอน insert to db ใช้เป็น $filename
ลองดูครับ ผมก็โปรแกรมมั่วๆ
credit : http://www.7blogger.com/7tip/php-save-file-name-in-thai-language.html
|
|
|
|
|
Date :
2013-12-02 09:52:04 |
By :
keling |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
กระทู้นี้มันจะครบ 2 ปีแล้วนะครับ
|
|
|
|
|
Date :
2013-12-02 10:17:03 |
By :
arm8957 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แบบนี้ครับ ลองดู เผื่อใครกำลังหาอยู่
Code (PHP)
if(($_FILES["filUpload"]['type']=="application/msword") //file .doc
|| ($_FILES["filUpload"]['type']=="application/vnd.openxmlformats-officedocument.wordprocessingml.document") //file .dcox
|| ($_FILES["filUpload"]['type']=="application/vnd.ms-excel") //file .xls
|| ($_FILES["filUpload"]['type']=="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")//file .xlsx
|| ($_FILES["filUpload"]['type']=="application/pdf") //file pdf
|| ($_FILES["filUpload"]['type']=="application/vnd.ms-powerpoint")) //file ppt
{
move_uploaded_file($_FILES["filUpload"]['tmp_name'],"myfile/".Date("dmy_His")."_".iconv("UTF-8", "TIS-620", $_FILES["filUpload"]["name"]));
}
else{
echo "<script>alert('Please upload file .doc/.docx/.xls/.pdf');history.back();</script>";
exit();
}
$sql = "INSERT INTO customer (UserID, Name, studentID, status, faculty, phone, EmailUser ,file ,dateAdd)
VALUES ('".$_POST["txtUserID"]."','".$_POST["txtName"]."','".$_POST["txtstudentID"]."'
,'".$_POST["txtstatus"]."','".$_POST["txtfaculty"]."','".$_POST["txtphone"]."','".$_POST["txtEmail"]."','".Date("dmy_His")."_".$_FILES["filUpload"]["name"]."',NOW())";
$query = mysqli_query($conn,$sql);
|
|
|
|
|
Date :
2018-12-25 11:56:55 |
By :
samada |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|