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,037

HOME > PHP > PHP Forum > [php] อยากขอช่วยอธิบายวิธีการอัพไฟล์ใหม่อัพไฟล์เก่าให้ทีครับ



 

[php] อยากขอช่วยอธิบายวิธีการอัพไฟล์ใหม่อัพไฟล์เก่าให้ทีครับ

 



Topic : 110743



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



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




มาอีกแล้วครับ ( วันละกระทู้เลย ตอนนี้ T^T )

สืบเนื่องจากกระทู้นี้ https://www.thaicreate.com/php/forum/057222.html ได้พูดถึงวิธีแก้ที่ผมต้องการพอดี แต่ปัญหาคือ อ่านแล้วไม่ได้ช่วยให้บรรลุวิธีแก้เลยครับ = =

เลยอยากขอให้ช่วยสอนหน่อยว่ามันต้องทำยังไง เขียนโค้ดยังไงบ้างครับ? ( ผมพอเข้าใจว่าให้ดึงค่าชื่อไฟล์มาก่อน แล้วลบไฟล์ จากนั้นค่อยเอาชื่อไฟล์เก่ามาใช้กับไฟล์ใหม่ )

โค้ดส่วนอัพโหลดข้อมูลพร้อมไฟล์ครับ

Code (ASP)
if(is_uploaded_file($HTTP_POST_FILES['pic']['tmp_name'])){
	mysql_query("INSERT INTO form_bill( id, recorder, bill_type, storecode, usercode, read_date, bill_month, read1, read2, sum, vat7, sum_all )  values ('','$record','$type','$storecode','$usercode','$date','$billmonth','$read1','$read2','$sum','$vat','$sumall')");
	$bill_id = mysql_insert_id();
	$pic_name = $day.$month.$year."-".$storecode.".jpg"; 
	$pic_link = "http://choicecm.org/pic/billpic/".$pic_name;
mysql_query("UPDATE form_bill SET pic = '$pic_name' WHERE id = '$bill_id' ");
move_uploaded_file($HTTP_POST_FILES['pic']['tmp_name'],"./pic/billpic/".$pic_name);
  echo '<img src="pic/choice7-11 small logo.png" align="middle" width="300" height="150" /><br /><br />บันทึกข้อมูลเรียบร้อย';
  }


แบบนี้ผมต้องแทรงไอ้โค้ดอัพไฟล์ทับตรงไหน ยังไงครับ ช่วยสั่งสอนด้วยฮะ ( งวดนี้ผมไม่รู้แนวเลย กระทู้ก่อนๆ พอเขียนโค้ดมั่วๆเป็นตัวอย่างให้ได้ ขอโทษทีครับ )



Tag : PHP, MySQL, Windows









ประวัติการแก้ไข
2014-08-20 15:12:54
2014-08-20 15:15:12
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-08-20 15:12:24 By : nimirue View : 2315 Reply : 6
 

 

No. 1



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



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


ของผม ก็ ทำก่ารเช็ค ว่า มีไฟล์ เก่า อยู่ ใน นั้น ไหม ถ้า มี ให้ลบ อันเก่า ทิ้ง แล้ว นำไฟล์ใหม่ไปใส่ ถ้าไม่มี ก็ ให้ ใส่ได้เลย ครับ

Code (PHP)
   $sql2 = "select doc_file from document where doc_id ='$id' ";
   $precon2 =  mysql_query($sql2);
   $check=mysql_fetch_array($precon2);

if ($_FILES['fileupload']['size'] == 0)
	{	
	$namefile = $check['doc_file']; }
	else
 	{
	 $namefile = $check['doc_file']; 
	if ($check['doc_file']!='')
	{ unlink("fileupload/".$namefile);}
	 $Str_file = explode(".",$_FILES['fileupload']['name']); 
	 if ($Str_file['0']=='')
	 { 
	 $namefile='';}
	 else
    {$namedate='Doc_'.date("dmY").'_'.date("H.i A");
	 $namefile=$namedate.'.'.$Str_file['1'];}
	move_uploaded_file($_FILES["fileupload"]["tmp_name"],"fileupload/".$namefile);	
	}


แล้วเอา $namrfile ไป ใส่ sql ได้เลยครับ กรณี นี้ ผมจะเปลี่ยนชื่อไฟล์ เป็น ในแบบ ของผมเองนะครับ ลองเอาไปดูก่อน (เวลาโชวเทเบิลก็เอาเป็นลิงค์กดโชวไฟล์ได้เลย)
ผมลองเอาโคดบางส่วนมาให้ดูครับ ลองเอาไปดูน่าจะต่อยอดได้บ้างครับ








ประวัติการแก้ไข
2014-08-20 16:44:31
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-08-20 16:30:07 By : summawat
 


 

No. 2



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

Hall of Fame 2012

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


https://www.thaicreate.com/community/php-upload-file-mysql-edit-form.html
ตัวนี้เป็นตัว update ที่สุดแล้วครับ ครบครัน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-08-20 17:16:44 By : Ex-[S]i[L]e[N]t
 

 

No. 3



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

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

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

เอามาเผยแพร่อีกอันครับ เป็นการเขียนใส่ฟังก์ชั่นเข้าไปเลย ใช้งานได้ ยกไปอยู่ตรงไหนของเว็บก็ได้ สามารถใช้ร่วมกันได้ทันทีครับ
พร้อมระบบเปลี่ยนชื่อไฟล์กรณีการอัพไฟล์แล้วชื่อซ้ำกัน
ลบไฟล์เก่าทันทีที่เข้าฟังก์ชั่นนี้ ไม่ต้องไปคิดมากให้ปวดหัว ดัดแปลงนิดเดียวใช้ได้ตลอดชีวิตครับ
ระบบไม่ได้รับความซับซ้อน เช่น การขยาย / ย่อรูป ใช้สำหรับอัพไฟล์จริงๆ
ไฟล์ไม่หนักครับ ผมลองถือดูแล้ว

ตัวอย่างฟังก์ชั่น
Code (PHP)
function Uploadimage($oldpic,$FileUpload){
$path = './uploadfile';
$rand = substr(str_shuffle('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ23456789'),0,15);
if(trim($_FILES["FileUpload"]["tmp_name"]) != ""){
@unlink($path."/".$oldpic);
$images = $_FILES["FileUpload"]["name"];
$tmp = $_FILES["FileUpload"]["tmp_name"];
$new_images = $rand.'_'.$_FILES["FileUpload"]["name"];
move_uploaded_file($tmp,$path."/".$new_images);
}else{
$images = $oldpic;
$new_images = $images;
}	
return $new_images;
}


ตัวอย่าง htmlCode (PHP)
<form method="post" action="" enctype="multipart/form-data">
<input type="hidden" name="oldpic" value="<?=$oldpic?>" /> ///ใส่ข้อมูลรูปเก่าหน้าแก้ไข ตอนกำลังส่งไฟล์ พร้อมตั้งชื่อว่า oldpic
<input type="file" name="FileUpload" /> /// ผมตั้งชื่อไว้ว่า FileUpload    


ตัวอย่างหน้าอัพโหลด
Code (PHP)
$FileUpload = $_POST['FileUpload']; /// รับค่าชื่อรูปใหม่เข้ามา
$oldpic = $_POST['oldpic']; /// รับค่าชื่อรูปเก่าเข้ามา
$newimages = Uploadimage($oldpic,$FileUpload); //// ใส่รูปเก่าและรูปใหม่ไว้ในตัวแปร
mysql_query("UPDATE Table SET image='".$newimages."' WHERE id='$id'");



ประวัติการแก้ไข
2014-08-20 17:42:04
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-08-20 17:40:19 By : Dragons_first
 


 

No. 4



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



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


กลับมาละครับ

ไปลองมาแล้วครับ ทำได้ละครับ ตอนนี้ลบรูปแล้วอัพไฟล์ใหม่ทับได้แล้วครับ แต่ก็แอบเจอปัญหาจุกจิกตามมาอยู่

อันนี้เป็นรูปตอนอัพโหลดลองโค้ดเล่นๆครับ ( จำชื่อไฟล์ ไว้นะครับ )

exam 1

กดมาแสดงรูปนี้ครับ

exam 2

ปัญหาคือ ผมอัพรูปใหม่ทับได้สำเร็จครับ ตามภาพเลย

exam 3

( ชื่อเหมือนไฟล์รูปบนเป๊ะ )

แต่พอไปกดลิ้งรูปแล้ว มันกลับยังโชว์รูปเก่าให้ผมเห็นอยู่ ทั้งๆที่รูปมันไม่มี + วางทับไปแล้ว = =''

งงเลยครับ ขอไปหาสาเหตุแปบ

** อันนี้ code ที่ผมตั้งเงื่อนไขแก้ไขข้อมูลภาพ หลังจากดู 2 - 3 โพสข้างบนประกอบครับ **

Code (ASP)
if ( $HTTP_POST_FILES['pic']['tmp_name'] == null ){
		  echo '<img src="pic/choice7-11 small logo.png" align="middle" width="300" height="150" /><br /><br />แก้ไขข้อมูลค่าไฟ ไอดี'.$id.'เรียบร้อยแล้ว';
	  }
	  else{
		  $picname = $result['pic'];
	unlink("pic/billpic/".$picname);
	move_uploaded_file($HTTP_POST_FILES['pic']['tmp_name'],"./pic/billpic/".$picname);
  echo '<img src="pic/choice7-11 small logo.png" align="middle" width="300" height="150" /><br /><br />แก้ไขข้อมูลค่าไฟ ไอดี'.$id.'เรียบร้อยแล้ว';
	  }
  }

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-08-22 11:24:57 By : nimirue
 


 

No. 5



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



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


มันน่าจะเป็น cache ของระบบครับ ถ้าไม่กระทบอะไร เปลี่ยนชื่อไฟล์ใหม่ดีกว่าครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-08-22 14:10:13 By : arm8957
 


 

No. 6



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



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


ขอดูโค๊ดตอนโชวไฟล์ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-08-22 14:16:44 By : Chaidhanan
 

   

ค้นหาข้อมูล


   
 

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