ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => ข้อความที่เริ่มโดย: waterandthenbrokenparting ที่ 04 พฤษภาคม 2009, 16:55:27



หัวข้อ: PHP ช่วยข้าน้อยด้วย T-T
เริ่มหัวข้อโดย: waterandthenbrokenparting ที่ 04 พฤษภาคม 2009, 16:55:27
code : http://www.uploadd.com/download.aspx?pku=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);
}


หัวข้อ: Re: ขอถามหน่อยครับเกี่ยวกับ PHP
เริ่มหัวข้อโดย: pugkung ที่ 04 พฤษภาคม 2009, 16:58:54
เดี่ยวรอคุณโจ้ มาตอบ   :D

ถ้าเค้าว่างนะ   :P


หัวข้อ: Re: PHP ช่วยข้าน้อยด้วย T-T
เริ่มหัวข้อโดย: waterandthenbrokenparting ที่ 04 พฤษภาคม 2009, 17:50:57
ดันหน่อยน้าผมเขียนอธิบายใหม่แล้ว :)


หัวข้อ: Re: PHP ช่วยข้าน้อยด้วย T-T
เริ่มหัวข้อโดย: DJJome ที่ 04 พฤษภาคม 2009, 19:30:33
อัด code เป็น .zip ให้หน่อยสิ ขี้เกียจ copy & past ไปลอง


หัวข้อ: Re: PHP ช่วยข้าน้อยด้วย T-T
เริ่มหัวข้อโดย: waterandthenbrokenparting ที่ 04 พฤษภาคม 2009, 19:53:58
http://www.uploadd.com/download.aspx?pku=71E6C73ECZWUHMCHB5CDZ1QW26SQX
อัด zip ให้แล้วครับ :'(


หัวข้อ: Re: PHP ช่วยข้าน้อยด้วย T-T
เริ่มหัวข้อโดย: waterandthenbrokenparting ที่ 05 พฤษภาคม 2009, 01:48:26
ดันไป :)


หัวข้อ: Re: PHP ช่วยข้าน้อยด้วย T-T
เริ่มหัวข้อโดย: waterandthenbrokenparting ที่ 05 พฤษภาคม 2009, 04:39:44
รอรอรอท่านอับดุลหายไปไหนหนอ :-[


หัวข้อ: Re: PHP ช่วยข้าน้อยด้วย T-T
เริ่มหัวข้อโดย: DJJome ที่ 05 พฤษภาคม 2009, 09:27:34
ขอทำงานก่อนนะครับ
เดี๋ยวดูให้ ไม่ต้องห้่งบ



หัวข้อ: Re: PHP ช่วยข้าน้อยด้วย T-T
เริ่มหัวข้อโดย: pjgunner ที่ 05 พฤษภาคม 2009, 10:15:48
attr value ของ MAX_FILE_SIZE ไม่ออกคับ


หัวข้อ: Re: PHP ช่วยข้าน้อยด้วย T-T
เริ่มหัวข้อโดย: pjgunner ที่ 05 พฤษภาคม 2009, 10:32:39
แล้วทำไมต้องใส่ case: 1 ด้วยล่ะคับ  ???


หัวข้อ: Re: PHP ช่วยข้าน้อยด้วย T-T
เริ่มหัวข้อโดย: pjgunner ที่ 05 พฤษภาคม 2009, 10:37:33
แล้วทำไมต้องใส่ case: 1 ด้วยล่ะคับ  ???

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


ปล.โทษทีกดผิดปุ่ม  :-X ไม่ได้ตั้งใจปั้มนะ


หัวข้อ: Re: PHP ช่วยข้าน้อยด้วย T-T
เริ่มหัวข้อโดย: waterandthenbrokenparting ที่ 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]


หัวข้อ: Re: PHP ช่วยข้าน้อยด้วย T-T
เริ่มหัวข้อโดย: pjgunner ที่ 05 พฤษภาคม 2009, 11:45:52
ขอโทษทีคับ เพิ่งไปดูในแมนน่วน  :-X

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.


ว่าแต่ โหลดไฟล์ไม่ได้เลย


หัวข้อ: Re: PHP ช่วยข้าน้อยด้วย T-T
เริ่มหัวข้อโดย: waterandthenbrokenparting ที่ 05 พฤษภาคม 2009, 11:53:49
จะมีคนช่วยได้ไหมเนี่ย ;D รอนะ ๆ


หัวข้อ: Re: PHP ช่วยข้าน้อยด้วย T-T
เริ่มหัวข้อโดย: chui761 ที่ 05 พฤษภาคม 2009, 13:19:28
หุๆ เห็นถามในเว็บคุณ กรด ด้วย ลองเข้าไปดูวิธีเขียนให้ใช้งานได้ที่
http://www.goragod.com นะครับ มีบทความอธิบายอยู่


หัวข้อ: Re: PHP ช่วยข้าน้อยด้วย T-T
เริ่มหัวข้อโดย: waterandthenbrokenparting ที่ 09 พฤษภาคม 2009, 04:58:12
หุๆ เห็นถามในเว็บคุณ กรด ด้วย ลองเข้าไปดูวิธีเขียนให้ใช้งานได้ที่
[url]http://www.goragod.com[/url] นะครับ มีบทความอธิบายอยู่

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


หัวข้อ: Re: PHP ช่วยข้าน้อยด้วย T-T
เริ่มหัวข้อโดย: kobkung ที่ 09 พฤษภาคม 2009, 10:07:36
ใช้ ajax ทำ form สิ มันเช็คขั้นต้นให้ ส่งภาพแบบ multi ได้ แล้วค่อยส่งไปหน้า result แล้วเช็คลูปอีกที
ลองหาใน ajaxrain.com ดู ใช้ keyword ว่า upload มันจะมีเขียนว่า multi load ไม่แน่ใจว่าเป็น jquery หรือเปล่า ใช้ง่ายดีนะ ชอบมาก

ผมขี้เกียจอ่านโค้ดนะ  ???