|
|
|
ช่วยดูโค้ด upload ให้หน่อยครับ ชื่อที่ไปเก็บในโฟล์เด้อ ไม่เป็นภาษาไทยครับ แต่ในฐานข้อมูลปกติครับ |
|
|
|
|
|
|
|
Code (PHP)
<? include_once "connDB.php"; ?>
<?
if($submit=="OK"){
if ($_FILES['IMAGE']['name']!= '') {
$path='picture_upload/';
$file=$_FILES['IMAGE']['name'];
$file_type=substr($file,strlen($file)-4,strlen($file));
$pic_name='IMAGE_'.$ID_BOOK.strtoupper($file_type);
mysql_query( "SET NAMES UTF8" );
copy ($_FILES['IMAGE']['tmp_name'],$path.$pic_name);
mysql_query( "SET NAMES UTF8" ) ;
$IMAGE=$pic_name;
}
if($id1==""){
$sql="INSERT INTO bookdata set ID_BOOK='".$ID_BOOK."',NAMEBOOK='".$NAMEBOOK."',AUTHOR='".$AUTHOR."',PREAMBLE='".$PREAMBLE."',IMAGE='".$IMAGE."',B_type='".$B_type."',B_address='".$B_address."'";
}else{
$sql="UPDATE bookdata set NAMEBOOK='".$NAMEBOOK."',AUTHOR='".$AUTHOR."',PREAMBLE='".$PREAMBLE."',IMAGE='".$IMAGE."',B_type='".$B_type."',B_address='".$B_address."' WHERE ID_BOOK='".$id1."'" ;
}
mysql_query($sql);
mysql_query("SET NAMES UTF8");
}
if ($submit=="DEL"){
$sql="select * from bookdata where ID_BOOK='".$id1."' ";
$rstTemp=mysql_query($sql);
$file_tmp=mysql_result($rstTemp,0,'IMAGE');
if($file_tmp!='') unlink('picture_upload/'.$file_tmp);
$sql="delete from bookdata where ID_BOOK ='".$id1."'";
mysql_query($sql);
}
?>
Tag : PHP
|
|
|
|
|
|
Date :
2013-04-06 11:30:13 |
By :
FREEDOOM |
View :
1489 |
Reply :
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ต้องตั้งเป็นภาษาอังกฤษครับหรือก้ใช้โค้ดเพื่อรีเนมก่อนบันทึก ลองดูในเว็บนี้เยอะมมากกกก
|
|
|
|
|
Date :
2013-04-06 11:48:13 |
By :
dagonov |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าชื่อรูปเป็นไทยมันจะเพี้ยนครับ
|
|
|
|
|
Date :
2013-04-06 14:04:08 |
By :
dagonov |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ref.1 อันนี้ถูกต้องครับ เพิ่มเติม ในการ rename แต่ละครับ คุณต้องทำการ rand ทำไมต้อง rand เพื่อหลีกเลี่ยง browser จำ Cache
example rename
Code (PHP)
$file_name=$_FILES['filupload']['name']
$explode=explode(".",$file_name);
$rename=rand().".".$explode[1];
|
|
|
|
|
Date :
2013-04-06 14:05:07 |
By :
Ex-[S]i[L]e[N]t |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 4 เขียนโดย : Ex-[S]i[L]e[N]t เมื่อวันที่ 2013-04-06 14:05:07
รายละเอียดของการตอบ ::
Code (PHP)
ใส่แบบพี่บอกแล้วครับ มันไม่ยอมเปลี่ยนชื่อให้นะครับ
<? include_once "connDB.php"; ?>
<?
if($submit=="OK"){
if ($_FILES['IMAGE']['name']!= '')
$explode=explode(".",$IMAGE);
$rename=rand().".".$explode[1];
{
$path='picture_upload/';
$file=$_FILES['IMAGE']['name'];
$file_type=substr($file,strlen($file)-4,strlen($file));
$pic_name='IMAGE_'.$ID_BOOK.strtoupper($file_type);
copy ($_FILES['IMAGE']['tmp_name'],$path.$pic_name);
$IMAGE=$pic_name;
}
if($id1==""){
$sql="INSERT INTO bookdata set ID_BOOK='".$ID_BOOK."',NAMEBOOK='".$NAMEBOOK."',AUTHOR='".$AUTHOR."',PREAMBLE='".$PREAMBLE."',IMAGE='".$IMAGE."',B_type='".$B_type."',B_address='".$B_address."'";
}else{
$sql="UPDATE bookdata set NAMEBOOK='".$NAMEBOOK."',AUTHOR='".$AUTHOR."',PREAMBLE='".$PREAMBLE."',IMAGE='".$IMAGE."',B_type='".$B_type."',B_address='".$B_address."' WHERE ID_BOOK='".$id1."'" ;
}
mysql_query($sql);
mysql_query("SET NAMES UTF8");
}
if ($submit=="DEL"){
$sql="select * from bookdata where ID_BOOK='".$id1."' ";
$rstTemp=mysql_query($sql);
$file_tmp=mysql_result($rstTemp,0,'IMAGE');
if($file_tmp!='') unlink('picture_upload/'.$file_tmp);
$sql="delete from bookdata where ID_BOOK ='".$id1."'";
mysql_query($sql);
}
?>
|
|
|
|
|
Date :
2013-04-06 14:27:00 |
By :
FREEDOOM |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองเอาโค้ดไปดู ไปปรับเองนะ ของผมมันresizeภาพด้วย คนที่แนะนำผมคือ Ex-[S]i[L]e[N]t ได้โค้ดมาจากเค้านี่แหละ55
Code (PHP)
if(trim($_FILES["fileUpload"]["tmp_name"]) != "")
{
$images=$_FILES["fileUpload"]["tmp_name"];
$explode=explode(".",$_FILES["fileUpload"]["name"]); // ตัดนามสกุล
$random=rand(); // random number
$Tmprename="Tmp-".$random.".".$explode[1]; // rename picture
$rename=$random.".".$explode[1]; // rename picture
copy($_FILES["fileUpload"]["tmp_name"],"MyResize/".$rename);
$width=100; //*** Fix Width & Heigh (Autu caculate) ***//
$size=GetimageSize($images);
$height=round($width*$size[1]/$size[0]);
if($explode[1] == 'jpg' || $explode[1] == 'jpeg'){ // กรณี่ .jpeg
$images_orig = imagecreatefromjpeg($images);
}else if($explode[1] == 'png'){ // กรณี .png
$images_orig=imagecreatefrompng($images);
}
$photoX = ImagesX($images_orig);
$photoY = ImagesY($images_orig);
$images_fin = ImageCreateTrueColor($width, $height);
ImageCopyResampled($images_fin, $images_orig, 0, 0, 0, 0, $width+1, $height+1, $photoX, $photoY);
if($explode[1] == 'jpg' || $explode[1] == 'jpeg'){ // กรณี่ .jpeg
imagejpeg($images_fin,"MyResize/".$Tmprename);
}else if($explode[1] == 'png'){ // กรณี .png
imagepng($images_fin,"MyResize/".$Tmprename);
}
ImageDestroy($images_orig);
ImageDestroy($images_fin);
//////sql/////
}
|
ประวัติการแก้ไข 2013-04-06 14:35:40 2013-04-06 14:35:48
|
|
|
|
Date :
2013-04-06 14:34:26 |
By :
dagonov |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
โค๊ดดูค่อนข้างยากนะครับ
ข้อแนะนำ ในการรับค่าจาก form แต่ละครั้ง คุณควรเก็บค่าเป็นตัวแปรเสียก่อน เพื่อนำมาใช้งานสะดวกมากยิ่งขึ้น
Code (PHP)
<?
include_once "connDB.php";
if($submit=="OK"){
$Image_tmp=$_FILES['IMAGE']['tmp_name']; // ในการรับค่าform แต่ละครั้ง คุณควรรับเป็นค่า variable ก่อน เพื่อสะดวกต่อการใช้งาน
$Image_name=$_FILES['IMAGE']['name'];
if($Image_name != ""){ // ถ้า image name ไม่ทับเก่าค่าว่าง
$explode=explode(".",$Image_name); // ตัดค่าจะได้ 2 array [0]=ชื่อไฟล์ .[1]=นามสกุล
$rename="Image-".rand()."-".date("Y-m-d").".".$explode[1]; // rename file name
if(copy(Image_tmp,"picture_upload/".$rename){ // ถ้ามีการอัพโหลมีค่าเป็น true
// เงื่อนไขของคุณ
}
}
}
if ($submit=="DEL"){
$sql="select * from bookdata where ID_BOOK='".$id1."' ";
$rstTemp=mysql_query($sql);
$file_tmp=mysql_result($rstTemp,0,'IMAGE');
if($file_tmp!='') unlink('picture_upload/'.$file_tmp);
$sql="delete from bookdata where ID_BOOK ='".$id1."'";
mysql_query($sql);
}
?>
|
|
|
|
|
Date :
2013-04-06 14:39:46 |
By :
Ex-[S]i[L]e[N]t |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมไม่แน่ใจว่า ต้องการให้อัพโหลดไฟล์อะไรก็ตามไปเก็บไว้ใน โฟลเดอร์ แล้วชื่อของไฟล์ที่อัพโหลดนั้น มันเป็นภาษาไทย พอมันอัพโหลดขึ้นไปใน โฟลเดอร์แล้ว ชื่อไฟล์มันเพี้ยนไม่เป็นภาษาไทยตามชื่อไฟล์ต้นฉบับหรือชื่อที่ตั้งใหม่ ถูกต้องหรือไม่ครับ ถ้าใช่
อาจจะใช้ iconv("UTF-8","windows-874",$filename) , iconv("UTF-8","tis-620",$filename) แปลงชื่อไฟล์ก่อนคำสั่ง copy ดูนะครับ เพราะผมก็สามารถอัพโหลดไฟล์ชื่อภาษาไทยได้ตามปกติ
แต่เพื่อให้การทำงานที่ง่าย และขจัดปัญหาในเรื่องของ Encode ภาษา ก็แนะนำตาม rep ท่านข้างบนแนะนำครับ แต่ถ้ายังอยากได้ชื่อภาษาไทย ก็ใช้ ฟังก์ชั่นที่ผมแนะนำได้นะครับ
|
ประวัติการแก้ไข 2013-04-06 15:37:51 2013-04-06 15:45:59
|
|
|
|
Date :
2013-04-06 15:37:06 |
By :
art57110 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 8 เขียนโดย : art57110 เมื่อวันที่ 2013-04-06 15:37:06
รายละเอียดของการตอบ ::
ใส่แบบพี่ว่าได้ครับ แต่ชื่อลงฐานข้อมูลไม่หมดครับ งงเลย
Code (PHP)
<? include_once "connDB.php"; ?>
<?
if($submit=="OK"){
if ($_FILES['IMAGE']['name']!= '')
{
$path='picture_upload/';
$file=$_FILES['IMAGE']['name'];
$file_type=substr($file,strlen($file)-4,strlen($file));
$pic_name=''.$ID_BOOK.strtoupper($file_type);
$pic_name = iconv("UTF-8","windows-874",$pic_name);//โค้ดที่เพิ่มเข้าไป
copy ($_FILES['IMAGE']['tmp_name'],$path.$pic_name);
$IMAGE=$pic_name;
}
if($id1==""){
$sql="INSERT INTO bookdata set ID_BOOK='".$ID_BOOK."',NAMEBOOK='".$NAMEBOOK."',AUTHOR='".$AUTHOR."',PREAMBLE='".$PREAMBLE."',IMAGE='".$IMAGE."',B_type='".$B_type."',B_address='".$B_address."'";
}else{
$sql="UPDATE bookdata set NAMEBOOK='".$NAMEBOOK."',AUTHOR='".$AUTHOR."',PREAMBLE='".$PREAMBLE."',IMAGE='".$IMAGE."',B_type='".$B_type."',B_address='".$B_address."' WHERE ID_BOOK='".$id1."'" ;
}
mysql_query($sql);
mysql_query("SET NAMES UTF-8");
}
if ($submit=="DEL"){
$sql="select * from bookdata where ID_BOOK='".$id1."' ";
$rstTemp=mysql_query($sql);
$file_tmp=mysql_result($rstTemp,0,'IMAGE');
if($file_tmp!='') unlink('picture_upload/'.$file_tmp);
$sql="delete from bookdata where ID_BOOK ='".$id1."'";
mysql_query($sql);
}
?>
|
ประวัติการแก้ไข 2013-04-06 17:07:10
|
|
|
|
Date :
2013-04-06 17:05:50 |
By :
FREEDOOM |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
สลับที่กันดูครับ utf-8 กับ windows-874
|
|
|
|
|
Date :
2013-04-07 13:36:42 |
By :
ikikkok |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|