ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์ProgrammingPHP ช่วยข้าน้อยด้วย T-T
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: PHP ช่วยข้าน้อยด้วย T-T  (อ่าน 2007 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
waterandthenbrokenparting
คนรักเสียว
*

พลังน้ำใจ: 1
ออฟไลน์ ออฟไลน์

กระทู้: 111



ดูรายละเอียด
« เมื่อ: 04 พฤษภาคม 2009, 16:55:27 »

code : http://www.uploadd.com/downloa...=71E6C73ECZWUHMCHB5CDZ1QW26SQX

คือผมต้องการเช็คว่าถ้า file ที่อัพโหลด file ไหนไม่ error (หมายถึงต้องไม่ error อย่างน้อย 1 ไฟล์จาก 4 ไฟล์)
ก็ใ้ห้ทำฟั่งชั่น process form ก่อนอ่ะครับ
แล้วค่อยแจ้ง error โดยฟังชั่น show_error อีกที

include("17-3.php");

if (!empty($_POST["submit"])) {
   if (check_file($err)) {
      process_form();
   } else {
      show_error($err["error"]);
      show_error($err["type"]);
      show_error($err["move"]);
      html_form();
   }
} else {
   html_form();
}

ตรงสีแดงนั่นฟังชั่นจะคืนค่ามาเป็น true ถ้าไม่มี error และ false ถ้ามี error ครับ
รูปแบบการเก็บค่า error ค่าเป็นแบบนี้ครับ

โค๊ด:
	$err = array(
"error" => array(),
"type" => array(),
"move" => array()
);

17-3.php
โค๊ด:
function show_error($show_e) {
if (!count($show_e) > 0) {
return false;
} else {
foreach ($show_e as $skey => $svalue) {
echo "$svalue<br>\n";
}
}
}

function check_file(&$err) {
global $limit_size, $err;
$limit_size = "100000";
$err = array(
"error" => array(),
"type" => array(),
"move" => array()
);
foreach ($_FILES["pic"]["error"] as $ekey => $evalue) {

switch ($evalue) {
case 1:
case 2:
$err["error"][$ekey] = "ขนาดของไฟล์ที่ $ekey มากกว่า " . bytestokb($limit_size) . " KB";
break;
case 3:
$err["error"][$ekey] = "ไฟล์ที่ $ekey ถูกส่งมาแค่เพียงบางส่วน";
break;
case 4:
$err["error"][$ekey] = "ไม่มีการส่งไฟล์ที่ $ekey มา";
break;
}

if ($evalue == 0) {
if (!(($_FILES["pic"]["type"][$ekey] == "image/gif") || ($_FILES["pic"]["type"][$ekey] == "image/pjpeg") || ($_FILES["pic"]["type"][$ekey] == "image/jpeg") || ($_FILES["pic"]["type"][$ekey] == "image/x-png") || ($_FILES["pic"]["type"][$ekey] == "image/png"))) {
$err["type"][$ekey] = "ไฟล์ที่ $ekey ไม่ใช่รูปภาพ";
}
}
}

switch (empty($err["error"]) && empty($err["type"]) && empty($err["move"])) {
case true:
return true;
break;
case false:
return false;
break;
}

}

function html_form() {
global $limit_size;
echo <<<HTMLBLOCK
<form action="{$_SERVER["PHP_SELF"]}" method="POST" enctype="multipart/form-data" name="img_file">
<input type="hidden" name="MAX_FILE_SIZE" value="{$limit_size}">
<input type="file" name="pic[]"><br>
<input type="file" name="pic[]"><br>
<input type="file" name="pic[]"><br>
<input type="file" name="pic[]"><br>
<input type="submit" name="submit" value="upload">
</form>
HTMLBLOCK;
}

function print_array($show) {
echo "<pre>";
print_r($show);
echo "</pre>";
}

function process_form() {
$w = 100;
$h = 100;
foreach ($_FILES["pic"]["tmp_name"] as $tmpkey => $tmpvalue) {
$dir_pic = "upload/" . time() . "-" . $_FILES["pic"]["name"][$tmpkey];

if(!move_uploaded_file($_FILES["pic"]["tmp_name"][$tmpkey], $dir_pic)) {
$err["move"][$tmpkey] = "ไม่สามารถย้ายไฟล์ที่ $tmpkey ได้";
} else {
echo "<B>รายละเอียดไฟล์ที่ $tmpkey : </B><br>\n";
echo "ชื่อ : {$_FILES["pic"]["name"][$tmpkey]}<br>\n";
echo "ขนาดไฟล์ : " . bytestokb($_FILES["pic"]["size"][$tmpkey]) . " KB<br>\n";
echo "ประเภทไฟล์ : {$_FILES["pic"]["type"][$tmpkey]}<br>\n";
echo "<img src=\"$dir_pic\" witdh=\"{$w}\" height=\"{$h}\"><br>\n";
}

}
}

function bytestokb($num) {
return round($num/1024);
}
« แก้ไขครั้งสุดท้าย: 04 พฤษภาคม 2009, 20:03:55 โดย waterandthenbrokenparting » บันทึกการเข้า

รักแท้แพ้ใกล้ชิด
pugkung
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 196
ออฟไลน์ ออฟไลน์

กระทู้: 2,681



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 04 พฤษภาคม 2009, 16:58:54 »

เดี่ยวรอคุณโจ้ มาตอบ   Cheesy

ถ้าเค้าว่างนะ   Tongue
บันทึกการเข้า

waterandthenbrokenparting
คนรักเสียว
*

พลังน้ำใจ: 1
ออฟไลน์ ออฟไลน์

กระทู้: 111



ดูรายละเอียด
« ตอบ #2 เมื่อ: 04 พฤษภาคม 2009, 17:50:57 »

ดันหน่อยน้าผมเขียนอธิบายใหม่แล้ว Smiley
บันทึกการเข้า

รักแท้แพ้ใกล้ชิด
DJJome
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 46
ออฟไลน์ ออฟไลน์

กระทู้: 1,123



ดูรายละเอียด
« ตอบ #3 เมื่อ: 04 พฤษภาคม 2009, 19:30:33 »

อัด code เป็น .zip ให้หน่อยสิ ขี้เกียจ copy & past ไปลอง
บันทึกการเข้า
waterandthenbrokenparting
คนรักเสียว
*

พลังน้ำใจ: 1
ออฟไลน์ ออฟไลน์

กระทู้: 111



ดูรายละเอียด
« ตอบ #4 เมื่อ: 04 พฤษภาคม 2009, 19:53:58 »

http://www.uploadd.com/downloa...=71E6C73ECZWUHMCHB5CDZ1QW26SQX
อัด zip ให้แล้วครับ :'(
บันทึกการเข้า

รักแท้แพ้ใกล้ชิด
waterandthenbrokenparting
คนรักเสียว
*

พลังน้ำใจ: 1
ออฟไลน์ ออฟไลน์

กระทู้: 111



ดูรายละเอียด
« ตอบ #5 เมื่อ: 05 พฤษภาคม 2009, 01:48:26 »

ดันไป Smiley
บันทึกการเข้า

รักแท้แพ้ใกล้ชิด
waterandthenbrokenparting
คนรักเสียว
*

พลังน้ำใจ: 1
ออฟไลน์ ออฟไลน์

กระทู้: 111



ดูรายละเอียด
« ตอบ #6 เมื่อ: 05 พฤษภาคม 2009, 04:39:44 »

รอรอรอท่านอับดุลหายไปไหนหนอ Embarrassed
บันทึกการเข้า

รักแท้แพ้ใกล้ชิด
DJJome
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 46
ออฟไลน์ ออฟไลน์

กระทู้: 1,123



ดูรายละเอียด
« ตอบ #7 เมื่อ: 05 พฤษภาคม 2009, 09:27:34 »

ขอทำงานก่อนนะครับ
เดี๋ยวดูให้ ไม่ต้องห้่งบ

บันทึกการเข้า
pjgunner
คนรักเสียว
*

พลังน้ำใจ: 6
ออฟไลน์ ออฟไลน์

กระทู้: 106



ดูรายละเอียด เว็บไซต์
« ตอบ #8 เมื่อ: 05 พฤษภาคม 2009, 10:15:48 »

attr value ของ MAX_FILE_SIZE ไม่ออกคับ
บันทึกการเข้า

pjgunner
คนรักเสียว
*

พลังน้ำใจ: 6
ออฟไลน์ ออฟไลน์

กระทู้: 106



ดูรายละเอียด เว็บไซต์
« ตอบ #9 เมื่อ: 05 พฤษภาคม 2009, 10:32:39 »

แล้วทำไมต้องใส่ case: 1 ด้วยล่ะคับ  Huh?
บันทึกการเข้า

pjgunner
คนรักเสียว
*

พลังน้ำใจ: 6
ออฟไลน์ ออฟไลน์

กระทู้: 106



ดูรายละเอียด เว็บไซต์
« ตอบ #10 เมื่อ: 05 พฤษภาคม 2009, 10:37:33 »

แล้วทำไมต้องใส่ case: 1 ด้วยล่ะคับ  Huh?

ถ้าใส่ก็น่าจะ break; ด้วย


ปล.โทษทีกดผิดปุ่ม  Lips Sealed ไม่ได้ตั้งใจปั้มนะ
บันทึกการเข้า

waterandthenbrokenparting
คนรักเสียว
*

พลังน้ำใจ: 1
ออฟไลน์ ออฟไลน์

กระทู้: 111



ดูรายละเอียด
« ตอบ #11 เมื่อ: 05 พฤษภาคม 2009, 11:28:12 »

เอามาเทียบค่าครับว่าอัพโหลดสำเร็จหรือไม่
โค๊ด:
switch ($evalue) {
case 1:
case 2:
$err["error"][$ekey] = "ขนาดของไฟล์ที่ $ekey มากกว่า " . bytestokb($limit_size) . " KB";
break;
case 3:
$err["error"][$ekey] = "ไฟล์ที่ $ekey ถูกส่งมาแค่เพียงบางส่วน";
break;
case 4:
$err["error"][$ekey] = "ไม่มีการส่งไฟล์ที่ $ekey มา";
break;

code]
บันทึกการเข้า

รักแท้แพ้ใกล้ชิด
pjgunner
คนรักเสียว
*

พลังน้ำใจ: 6
ออฟไลน์ ออฟไลน์

กระทู้: 106



ดูรายละเอียด เว็บไซต์
« ตอบ #12 เมื่อ: 05 พฤษภาคม 2009, 11:45:52 »

ขอโทษทีคับ เพิ่งไปดูในแมนน่วน  Lips Sealed

UPLOAD_ERR_OK
Value: 0; There is no error, the file uploaded with success.

UPLOAD_ERR_INI_SIZE
Value: 1; The uploaded file exceeds the upload_max_filesize directive in php.ini.

UPLOAD_ERR_FORM_SIZE
Value: 2; The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.

UPLOAD_ERR_PARTIAL
Value: 3; The uploaded file was only partially uploaded.

UPLOAD_ERR_NO_FILE
Value: 4; No file was uploaded.

UPLOAD_ERR_NO_TMP_DIR
Value: 6; Missing a temporary folder. Introduced in PHP 4.3.10 and PHP 5.0.3.

UPLOAD_ERR_CANT_WRITE
Value: 7; Failed to write file to disk. Introduced in PHP 5.1.0.

UPLOAD_ERR_EXTENSION
Value: 8; File upload stopped by extension. Introduced in PHP 5.2.0.


ว่าแต่ โหลดไฟล์ไม่ได้เลย
« แก้ไขครั้งสุดท้าย: 05 พฤษภาคม 2009, 12:00:53 โดย pjgunner » บันทึกการเข้า

waterandthenbrokenparting
คนรักเสียว
*

พลังน้ำใจ: 1
ออฟไลน์ ออฟไลน์

กระทู้: 111



ดูรายละเอียด
« ตอบ #13 เมื่อ: 05 พฤษภาคม 2009, 11:53:49 »

จะมีคนช่วยได้ไหมเนี่ย Grin รอนะ ๆ
บันทึกการเข้า

รักแท้แพ้ใกล้ชิด
chui761
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 860
ออฟไลน์ ออฟไลน์

กระทู้: 9,477



ดูรายละเอียด เว็บไซต์
« ตอบ #14 เมื่อ: 05 พฤษภาคม 2009, 13:19:28 »

หุๆ เห็นถามในเว็บคุณ กรด ด้วย ลองเข้าไปดูวิธีเขียนให้ใช้งานได้ที่
http://www.goragod.com นะครับ มีบทความอธิบายอยู่
บันทึกการเข้า

waterandthenbrokenparting
คนรักเสียว
*

พลังน้ำใจ: 1
ออฟไลน์ ออฟไลน์

กระทู้: 111



ดูรายละเอียด
« ตอบ #15 เมื่อ: 09 พฤษภาคม 2009, 04:58:12 »

หุๆ เห็นถามในเว็บคุณ กรด ด้วย ลองเข้าไปดูวิธีเขียนให้ใช้งานได้ที่
http://www.goragod.com นะครับ มีบทความอธิบายอยู่

ครับแต่ผมอยากได้แนวทางการเขียนแบบใช้ฟังชั่นมากกว่า Smiley
บันทึกการเข้า

รักแท้แพ้ใกล้ชิด
kobkung
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 103
ออฟไลน์ ออฟไลน์

กระทู้: 1,312



ดูรายละเอียด เว็บไซต์
« ตอบ #16 เมื่อ: 09 พฤษภาคม 2009, 10:07:36 »

ใช้ ajax ทำ form สิ มันเช็คขั้นต้นให้ ส่งภาพแบบ multi ได้ แล้วค่อยส่งไปหน้า result แล้วเช็คลูปอีกที
ลองหาใน ajaxrain.com ดู ใช้ keyword ว่า upload มันจะมีเขียนว่า multi load ไม่แน่ใจว่าเป็น jquery หรือเปล่า ใช้ง่ายดีนะ ชอบมาก

ผมขี้เกียจอ่านโค้ดนะ  Huh?
บันทึกการเข้า

เราเป็นบริษัท รับทำเว็บไซต์ แก้เว็บเดิม เขียน Php+Mysql+jQuery+css+bootstrap  งานตามสั่ง ประสบการณ์ จะ 19 ปี ละจ้า
Smilephp.com รับทำเว็บไซต์บริษัท e-commerce + ระบบชำระเงิน paypal,ธนาคาร  เว็บบริษัท เว็บขายของ ระบบจอง เช่า เขียน PHP ได้ทุกแนว  ช่วงนี้เน้นรับงาน ERP ระบบเอกสารบริษัท ,บัญชี ,  Barcode, Stock , Warehouse , Logistic ติดต่อ 086-364-5262

งดตอบคนทำเว็บนอกลู่นอกทาง ไม่ทำเว็บ WP ปั่นแชร์ เว็บประมูล สคริปปั่นใดๆ ไม่ทำเว็บบอลและพ
หน้า: [1]   ขึ้นบน
พิมพ์