|
|
|
สร้างช่อง upload file หลายไฟล์ แต่ บางครั้งอัพไฟล์เดียว กรณีนี้จะปันทึกลง database ยังไงครับ |
|
|
|
|
|
|
|
ผมเข้าใจว่ามันเข้าช่องไหนที่ไม่ได้แนบไฟล์ มันจะเป็นค่าว่าง มันเลยไปเข้า if ตรวจนามสกุลไฟล์ ว่าประเภทไฟล์ไม่ถูกต้องครับ คือผมต้องการให้เราสามารถบันทึกได้โดยที่เราอาจจะแนบไฟล์1 หรือไม่แนบเลยก็สามารถบันทึกได้ครับ
Code (PHP)
if (isset($_FILES['filUpload']['name']) && !empty($_FILES['filUpload']['name'])) {
// echo "<pre>";
// print_r($_FILES);
// echo "</pre>";
$extension = array("pdf","jpeg","jpg","png");
$target = '../uploads/allreportstatic/';
foreach($_FILES['filUpload']['tmp_name'] as $i => $tmp_name){
if(!$i) {return "-";}
$filename = $_FILES['filUpload']['name'][$i];
$filetmp = $_FILES['filUpload']['tmp_name'][$i];
$ext = pathinfo($filename, PATHINFO_EXTENSION);
if (in_array($ext, $extension)) {
if (!file_exists($target . $filename)) {
if (move_uploaded_file($filetmp,$target.$filename)) {
$filename = $filename;
} else {
$alert = '<script type="text/javascript">';
$alert .= 'alert("เพิ่มไฟล์เข้า folder ไม่สำเร็จ");';
$alert .= 'window.location.href = "?page=static&function=addaccident";';
$alert .= '</script>';
echo $alert;
exit();
}
} else {
$newfilename = time() . $filename;
if (move_uploaded_file($filetmp, $target . $newfilename)) {
$filename = $newfilename;
} else {
$alert = '<script type="text/javascript">';
$alert .= 'alert("เพิ่มไฟล์เข้า folder ไม่สำเร็จ");';
$alert .= 'window.location.href = "?page=static&function=addaccident";';
$alert .= '</script>';
echo $alert;
exit();
}
}
} else {
// $alert = '<script type="text/javascript">';
// $alert .= 'alert("ประเภทไฟล์ไม่ถูกต้อง");';
// $alert .= 'window.location.href = "?page=static&function=addaccident";';
// $alert .= '</script>';
// echo $alert;
// exit();
echo "<pre>";
print_r($_FILES);
echo "</pre>";
}
}
} else {
$filename = '';
}
Tag : PHP, MySQL, HTML, CSS
|
|
|
|
|
|
Date :
2021-07-11 10:51:52 |
By :
artscaat |
View :
805 |
Reply :
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
กรณี 1 เรคอร์ด อ้างอิงหลายไฟล์
ผมจะสร้าง ตาราง transection ไว้เก็บ ไฟล์
field
id(primary)
main_id(FK)
filename
|
|
|
|
|
Date :
2021-07-11 10:57:52 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ฝั่ง client ส่งมาอย่างไร ...และ print_r ที่คอมเมนต์ไปแสดงผลแบบไหน (เอาแค่ตัวอย่าง)
|
|
|
|
|
Date :
2021-07-11 12:34:34 |
By :
TheGreatGod_of_Death |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
รวมเป็น field เดียว ใช้ group_concat
Code (SQL)
select *, (select group_concat('file_name') from tb_pic where fk_id=m.id) as pic_list
from tb_main as m
เวลานำไปใช้ ก็ทำการ explode เป็น array
ปล. ก่อนที่จะ บันทึก ชื่อไฟล์ ลง database และ ไฟล์ ลง harddisk
ให้ดำเนินการกับ ตารางหลัก ให้เรียบร้อยก่อน แล้วนำ id ที่ได้จากการ insert หรือ id ที่ส่งมาเพื่ออัพเดท
มาจัดการชื่อไฟล์ เพื่อใช้ในการบันทึกลง database และ harddisk
|
ประวัติการแก้ไข 2021-07-11 19:02:44
|
|
|
|
Date :
2021-07-11 18:56:18 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|