|
|
|
[สอบถาม] ใช้คำสั่ง move_uploaded_file หลายครั้งในหน้า page เดียวกัน |
|
|
|
|
|
|
|
สามารถทำได้หรือไม่ครับ เช่น
Code (PHP)
<?php
//copy รูปลงใน folder "foodpic1"
move_uploaded_file($pictemp1,"foodpic1/".$newfilename1);
// Insert รูปลง table1
$strSQL1="INSERT INTO food VALUES (null,'$newfilename1','$restname','$detailmain','$typefood','$price','$place',NOW())";
$objQuery1 = mysql_query($strSQL1) or die ("Error Query[".$strSQL1."]");
//copy รูปลงใน folder "foodpic2"
move_uploaded_file($_FILES['pic_more$i']['tmp_name'],"foodpic2/".$_FILES['pic_more$i']['name']);
//loop ค่าที่รับมาจาก List Menu Form
for($i=0;$i<=$_POST['hdnLine'];$i++){
//Insert รูปลง table2
$strSQL2 = "INSERT INTO pic_food ";
$strSQL2 .= "(Food_Id,Picture_Food,Detail_Food) VALUES ('1','".$_FILES['pic_more$i']['name']."','". $_POST['detail_more$i']."')";
$objQuery2 = mysql_query($strSQL2) or die ("Error Query[".$strSQL2."]");
}
?>
แต่ผมลองแบบนี้แล้วมันอัพรูปได้เฉพาะแค่ folder "foodpic1" เท่านั้นครับ มันไม่ทำคำสั่ง move_uploaded_file ที่อัพไป folder "foodpic2" ครับ ขอบคุณครับ
Tag : PHP, MySQL
|
|
|
|
|
|
Date :
2013-03-11 17:17:45 |
By :
backship |
View :
3508 |
Reply :
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช้ copy แทน move_uploaded_file ครับ
|
|
|
|
|
Date :
2013-03-11 17:19:39 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ก็ในเมื่อ move ไปแล้ว มันก็ไม่เหลือสิครับผม จะ move อันที่สองไปที่ใหม่ ก็แค่ copy จากอันที่ move เมื่อกี้ ไปแทนครับ
หรือว่ายังไง เพราะโค้ดที่เอามา มันไม่ครบ ไม่เห็นฟอร์มว่า่ส่งอะไรมาเท่าใหร่
|
|
|
|
|
Date :
2013-03-11 17:20:02 |
By :
deawx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถึง mr.win
ลองใช้คำสั่ง copy ของอันที่ 2 ก็ไม่มาครับ
ถึง K.deawx
code หน้า Form ครับ ถ้าไม่เข้าใจตรงไหน ถามได้นะครับ code เยอะเกิ้น ขอบคุณครับ
Code (PHP)
<form name="frmMain" action="post_form1.php" method="post" enctype="multipart/form-data">
<table border="1" align="center" class="table table-striped">
<tr>
<td colspan="3" class="text-info"><font size="+1.5">รายละเอียดข้อมูลของหน้า Index</font></td>
</tr>
<tr>
<td>รูปหน้า Index<input type="file" name="pic_index" onchange="ShowPic(this)"/>
<br />
<img id="picview"/>
</td>
<td>ชื่อร้าน <input type="text" name="restname" /></td>
<td>คำนำ <textarea cols="50" rows="5" name="detail_main"style="resize:none"></textarea></td>
</tr>
<tr>
<td>ประเภทอาหาร :<select name="type_food">
<option value="">--เลือกประเภทอาหาร--</option>
<option value="ร้านอาหารริมทาง">ร้านอาหารริมทาง</option>
<option value="ร้านอาหารติดแอร์">ร้านอาหารติดแอร์</option>
</select>
</td>
<td>ราคา :<input type="text" name="price" /> บาท</td>
<td>สถานที่ :<input type="text" name="place" /></td>
</tr>
<tr>
<td colspan="3" class="text-info"><font size="+1.5">รายละเอียดข้อมูลของหน้า Food Detail</font><span class="btn btn-info" style="float:right">เลือกจำนวนรูปภาพ : <select name="addpic" onchange="MM_jumpMenu('parent',this,0)">
<?php
for($i=1;$i<=10;$i++){
if($_GET['Line']==$i){
$sel = "selected";
}else{
$sel = "";
}
?>
<option value="<?=$_SERVER['PHP_SELF'];?>?Line=<?=$i;?>" <?=$sel;?>><?=$i;?></option>
<?php
}
?>
</select>
</span>
</td>
</tr>
<?php
$line = $_GET['Line'];
if($line==0){$line=1;}
for($i=1;$i<=$line;$i++){
?>
<tr>
<?php
for($a=1;$a<=$i;){
$a++;
?>
<!-- Script โชว์รูปภาพเมื่อ browse file -->
<script language="javascript" type="text/javascript">
function MorePic<?=$a;?>(input) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
$('#picshow<?=$a;?>').attr('src', e.target.result);
}
reader.readAsDataURL(input.files[0]);
}
}
</script>
<?php
} //for ของ $a
?>
<td>รูปที่ : <?=$i;?> <input type="file" name="pic_more<?=$i?>" id="pic_more<?=$i?>" onchange="MorePic<?=$a;?>(this)"/>
<br />
<img id="picshow<?=$a;?>"/>
</td>
<td colspan="2">คำบรรยาย <textarea cols="50" rows="5" style="resize:none" name="detail_more<?=$i?>" id="detail_more<?=$i?>"></textarea></td>
</tr>
<?php
} //for ของ $i
?>
</table>
<center><input type="submit" name="submit" value="Submit" class="btn-large btn-warning"/></center>
<input type="hidden" name="hdnLine" value="<?=$i;?>" />
</form>
|
|
|
|
|
Date :
2013-03-11 17:33:51 |
By :
backship |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มีใครแนะนำได้บ้างครับ ขอบคุณครับ
|
|
|
|
|
Date :
2013-03-12 09:50:56 |
By :
backship |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช้คำสั่ง copy ทั้ง 2 อันเลยครับ ถ้า move อันแรก อันที่ 2 ก็ copy ไม่ได้
|
|
|
|
|
Date :
2013-03-12 10:00:34 |
By :
weaned |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พอใช้ copy ทั้งสองตัวขึ้น error แบบนี้ครับ
Warning: copy() [function.copy]: Filename cannot be empty in D:\xampp\htdocs\workshop\post_form1.php
|
|
|
|
|
Date :
2013-03-12 10:16:09 |
By :
backship |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
บอกว่า foodpic2 ก็จริง แต่ชื่อไฟล์คือ pic_more$i มันก็ move ไม่ได้สิครับ
Code (PHP)
<?php
//copy รูปลงใน folder "foodpic1"
move_uploaded_file($pictemp1,"foodpic1/".$newfilename1);
// Insert รูปลง table1
$strSQL1="INSERT INTO food VALUES (null,'$newfilename1','$restname','$detailmain','$typefood','$price','$place',NOW())";
$objQuery1 = mysql_query($strSQL1) or die ("Error Query[".$strSQL1."]");
//copy รูปลงใน folder "foodpic2"
// ***************************************
// $_FILES['pic_more$i']['tmp_name'] ชื่อนี้ท่านได้แต่ใดมา
move_uploaded_file($_FILES['pic_more$i']['tmp_name'],"foodpic2/".$_FILES['pic_more$i']['name']);
//loop ค่าที่รับมาจาก List Menu Form
for($i=0;$i<=$_POST['hdnLine'];$i++){
//Insert รูปลง table2
$strSQL2 = "INSERT INTO pic_food ";
$strSQL2 .= "(Food_Id,Picture_Food,Detail_Food) VALUES ('1','".$_FILES['pic_more$i']['name']."','". $_POST['detail_more$i']."')";
$objQuery2 = mysql_query($strSQL2) or die ("Error Query[".$strSQL2."]");
}
?>
|
|
|
|
|
Date :
2013-03-12 10:43:30 |
By :
cookiephp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
K.แมวของคุกกี้ คือผมไม่เข้าใจคับว่าหมายถึงอะไร คือผมจะอัพไฟล์รูปภาพจากที่ folder มาไว้ที่ folder "foodpic2" แล้วต้องเปลี่ยนแปลงตรงไหนเหรอครับ
ส่วนที่ถามคือ $_FILES['pic_more$i']['tmp_name'] มาจากไฟล์ temp ที่พักไว้ก่อน move ไฟล์เข้า folder อ่ะครับ รับมาจาก form ของ type ="file" อีกที หรือผมเข้าใจผิดไปหรือป่าวครับ ขอบคุณครับ
|
|
|
|
|
Date :
2013-03-12 11:35:58 |
By :
backship |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือคุณสั่งให้ตั้งชื่อ <input> ตามค่่าของตัวแปร $i ใช่ไหมครับ ตอนสร้างฟอร์มน่ะ
<input type="file" name="pic_more<?=$i?>" id="pic_more<?=$i?>" onchange="MorePic<?=$a;?>(this)"/>
ซึ่งถ้าตัวแปร $i มีค่า 2 ก็จะได้ <input> ชื่อ pic_more2
แต่ตอนคุณอ่านค่าจาก $_FILES คุณใช้ syntax นี้
$_FILES['pic_more$i']['tmp_name']
ซึ่งจะหมายถึง <input> ที่ชื่อว่า pic_more$i
เก็ตไหมครับ
แต่ถ้าคุณใช้แบบนี้
$_FILES["pic_more$i"]['tmp_name']
นี่ล่ะครับ ถึงจะหมายถึง <input> ที่ชื่อว่า pic_more และตามด้วยค่าของตัวแปร $i (สังเกต ' กับ ")
และต่อให้คุณเปลี่ยนจาก ' เป็น " ก็ยังไม่รู้ว่ามันจะหมายถึง pic_more2 อย่างที่คุณต้องการหรือเปล่า
เพราะไม่รู้ว่า ณ จุดนั้นในโค้ดที่คุณยกมา ค่าของตัวแปร $i มันคืออะไร (มีตัวตนหรือเปล่าก็ยังไม่รู้ เพราะคุณยกมาแค่นั้น)
ถ้าอ่านคำตอบผมแล้วไม่เข้าใจ ขอให้ลองไปศึกษาพื้นฐาน PHP อีกหน่อยนะครับ
|
|
|
|
|
Date :
2013-03-12 12:02:25 |
By :
cookiephp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมผิดที่ใช้ตัว ' และ " ไม่ถูกเองครับ ขอบคุณครับ
|
ประวัติการแก้ไข 2013-03-12 14:19:03
|
|
|
|
Date :
2013-03-12 13:40:00 |
By :
backship |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เขียนเป็นฟังก์ชั่นครับ ลด source code ไปได้เยอะพอสมควร
Code (PHP)
function MultiUploadimage($FileUpload,$tmps,$oldpic){
$path = "../data";
$rand = substr(str_shuffle('ABCDEFGHIJKLMNOPQRSTUVWXYZ23456789'),0,15);
if(trim($tmps) != ""){
@unlink($path."/".$oldpic);
$images = $FileUpload;
$tmp = $tmps;
$new_images = $rand.'-'.$FileUpload;
move_uploaded_file($tmp,$path."/".$new_images);
}else{
$images = $oldpic;
$new_images = $images;
}
return $new_images;
}
วิธีใช้งาน
<input type="file" name="FileUpload1">
<input type="file" name="FileUpload2">
<input type="file" name="FileUpload3">
<input type="file" name="FileUpload4">
หรือจะทำเป็นแบบ array() ก็ได้
<input type="file" name="FileUpload[]">
Code (PHP)
for($i=0;$i<count($_POST["name"]);$i++)
{
if($_POST["name"][$i]!= "")
{
$FileUpload[$i] = trim($_FILES["FileUpload"]["name"][$i]);
$tmps[$i] = $_FILES["FileUpload"]["tmp_name"][$i];
$oldpic[$i] = '';
$newimages = MultiUploadimage($FileUpload[$i],$tmps[$i],$oldpic[$i]);
mysql_query("insert into gallery (image) values('".$newimages."')") or die (mysql_error());
}
}
ประมาณนี้ครับ
|
|
|
|
|
Date :
2013-03-12 14:23:43 |
By :
Dragons_first |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณ K.อ้นคุง มากๆครับ
|
|
|
|
|
Date :
2013-03-13 08:40:25 |
By :
backship |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<meta charset="UTF-8">
<?php
//1. เชื่อมต่อ database:
include('connectdb.php'); //ไฟล์เชื่อมต่อกับ database ที่เราได้สร้างไว้ก่อนหน้าน้ี
$fileupload = $_REQUEST['fileupload']; //รับค่าไฟล์จากฟอร์ม
$date = date("d-m-Y"); //กำหนดวันที่และเวลา
//เพิ่มไฟล์
$upload=$_FILES['fileupload'];
if($upload <> '') { //not select file
//โฟลเดอร์ที่จะ upload file เข้าไป
$path="fileupload/";
//เอาชื่อไฟล์ที่มีอักขระแปลกๆออก
$remove_these = array(' ','`','"','\'','\\','/','_');
$newname = str_replace($remove_these, '', $_FILES['fileupload']['name']);
//ตั้งชื่อไฟล์ใหม่โดยเอาเวลาไว้หน้าชื่อไฟล์เดิม
$newname = time().'-'.$newname;
$path_copy=$path.$newname;
$path_link="fileupload/".$newname;
//คัดลอกไฟล์ไปเก็บที่เว็บเซริ์ฟเวอร์
move_uploaded_file($_FILES['fileupload']['tmp_name'],$path_copy);
}
// เพิ่มไฟล์เข้าไปในตาราง uploadfile
$sql="INSERT INTO uploadfile ('fileupload') VALUES ('$newname');
$result = mysqli_query($con, $sql) or die ("Error in query: $sql " . mysqli_error());
mysqli_close($con);
// javascript แสดงการ upload file
if($result){
echo "<script type='text/javascript'>";
echo "alert('Upload File Succesfuly');";
echo "window.location = 'uploadfile.php'; ";
echo "</script>";
}
else{
echo "<script type='text/javascript'>";
echo "alert('Error back to upload again');";
echo "</script>";
}
?>
|
|
|
|
|
Date :
2020-06-05 14:37:12 |
By :
ทดสอบ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่ลงโฟเดอร์ แะไม่เข้าฐานข้อมูล ขึ้น error หน้านี้ไม่ทำงาน ค่ะ
<meta charset="UTF-8">
<?php
//1. เชื่อมต่อ database:
include('connectdb.php'); //ไฟล์เชื่อมต่อกับ database ที่เราได้สร้างไว้ก่อนหน้าน้ี
$fileupload = $_REQUEST['fileupload']; //รับค่าไฟล์จากฟอร์ม
$date = date("d-m-Y"); //กำหนดวันที่และเวลา
//เพิ่มไฟล์
$upload=$_FILES['fileupload'];
if($upload <> '') { //not select file
//โฟลเดอร์ที่จะ upload file เข้าไป
$path="fileupload/";
//เอาชื่อไฟล์ที่มีอักขระแปลกๆออก
$remove_these = array(' ','`','"','\'','\\','/','_');
$newname = str_replace($remove_these, '', $_FILES['fileupload']['name']);
//ตั้งชื่อไฟล์ใหม่โดยเอาเวลาไว้หน้าชื่อไฟล์เดิม
$newname = time().'-'.$newname;
$path_copy=$path.$newname;
$path_link="fileupload/".$newname;
//คัดลอกไฟล์ไปเก็บที่เว็บเซริ์ฟเวอร์
move_uploaded_file($_FILES['fileupload']['tmp_name'],$path_copy);
}
// เพิ่มไฟล์เข้าไปในตาราง uploadfile
$sql="INSERT INTO uploadfile ('fileupload') VALUES ('$newname');
$result = mysqli_query($con, $sql) or die ("Error in query: $sql " . mysqli_error());
mysqli_close($con);
// javascript แสดงการ upload file
if($result){
echo "<script type='text/javascript'>";
echo "alert('Upload File Succesfuly');";
echo "window.location = 'uploadfile.php'; ";
echo "</script>";
}
else{
echo "<script type='text/javascript'>";
echo "alert('Error back to upload again');";
echo "</script>";
}
?>
|
|
|
|
|
Date :
2020-06-05 14:38:41 |
By :
ทดสอบ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|