|
|
|
รบกวนหน่อนคับเรื่อง import.csv เวลา ตอนนี้ไม่ว่ามันจะเป็น file อะไรเข้าไปมันรันหมดเลยอะคับต้องเพิ่มโค้ดส่วนไหนหรอคับ |
|
|
|
|
|
|
|
สงสัยว่า การอัพไฟล์พวกนี้ ควรเป็นผู้พัฒนาหรือดูแลระบบ ที่มีความชำนาญ....เป็นผู้ลงมือทำ
เห็นด้วย : การป้องกันเป็นสิ่งที่ดี แต่ดูจากเหตุแล้วไม่เห็นต้องระวังอะไรเลย....สร้างระบบนี้เพื่อใครอ่ะครับ
.......แค่สงสัยจริง ๆ
|
|
|
|
|
Date :
2013-11-20 15:24:08 |
By :
apisitp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เอาไว้อัพเดท สต็อกสินค้า เข้ากับตัว POS ที่ใช้ออกบูต เพื่อง่ายต่อการคีร์ข้อมูลจำนวนสินค้าที่สต็อกเพิ่ม
ที่จะทำไว้ป้องกันก็คือ เผื่อ การอัพโหลดไฟเข้าไปเเล้วเราเลือก file ผิด เป็น file excel ที่ไม่ใช่ .csv เข้าไปแล้ว หรือ เป็น file .csv เเล้ว ฟิว
ใน file นั้น มันมาก กว่า หรือ น้อยกว่า ฟิวที่เราต้องการที่จะอัพโหลดเข้า อะคับ
ตามนี้คับ
|
|
|
|
|
Date :
2013-11-20 15:36:44 |
By :
maojunghi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ก็คืออ่านไฟล์ทั้งหมดเข้ามาก่อน แล้วตรวจสอบทีละบรรทัด ถ้าบรรทัดไหนอ่านมาแล้วมีจำนวนคอลัมน์ไม่เท่าที่กำหนด ก็เลิกอ่าน และไม่ต้องทำการ insert หรือ update
Code (PHP)
<?php
function is_valid_csv_file($filename, $num_columns, $line_length = 65535)
{
$fp = fopen($filename, 'rb'); // เปิดไฟล์
while (($line = fgetcsv($fp, $line_length))) { // อ่านข้อมูลทีละบรรทัด ยาวสูงสุดตาม $line_length
// หากมีจำนวนคอลัมน์น้อยกว่าหรือมากกว่า $num_columns
if (!isset($line[$num_columns - 1]) || isset($line[$num_columns])) {
$error = true; // สร้างตัวแปรแสดง error
break; // ออกจากลูป while
}
}
fclose($fp); // ปิดไฟล์
return empty($error); // หากมีตัวแปร $error ถูกสร้างขึ้นมา ก็คืน false นอกนั้น true
}
if (is_valid_csv_file($file, 3)) { // ใช้ฟังก์ชั่นที่สร้างขึ้นมาก่อนหน้าตรวจสอบ
$objCSV = fopen("$file", "r");
while (($objArr = fgetcsv($objCSV, 1000, ",")) !== FALSE) {
$strSQL = "INSERT INTO import_stock";
$strSQL .="(barcode_item,number,UserID) ";
$strSQL .="VALUES ";
$strSQL .="('".$objArr[0]."','".$objArr[1]."','".$UserID."')";
$objQuery = mysql_query($strSQL);
}
fclose($objCSV);
}
|
|
|
|
|
Date :
2013-11-20 15:41:33 |
By :
K |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมเอาไปใส่เเล้วความนี้ไม่ว่าจะเป็น file อะไรมันไม่ไห้ import เลย
$objCSV = fopen("$file", "r");
if (($_FILES["file"]["type"] == "text/csv"))
{
while (($objArr = fgetcsv($objCSV, 1000, ",")) !== FALSE) {
$strSQL = "INSERT INTO import_stock";
$strSQL .="(barcode_item,number,UserID) ";
$strSQL .="VALUES ";
$strSQL .="('".$objArr[0]."','".$objArr[1]."','".$UserID."')";
$objQuery = mysql_query($strSQL);
}
fclose($objCSV);
}else{
}
|
|
|
|
|
Date :
2013-11-20 15:44:20 |
By :
maojunghi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไฟล์ csv มันก็คือไฟล์ text ธรรมดา มันไม่มี mime type ติดมากับไฟล์หรอกครับ ใช้วิธีการตรวจแบบนั้นไม่ได้
|
|
|
|
|
Date :
2013-11-20 15:49:11 |
By :
K |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
สังเกตบรรทัดที่ 15 ตอนเรียกใช้สิครับ - -
|
|
|
|
|
Date :
2013-11-20 16:00:30 |
By :
K |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้วคับ ขอบคุนมากๆคับ
|
|
|
|
|
Date :
2013-11-20 16:16:06 |
By :
maojunghi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|