เกี่ยวกับ GAJAX บทที่ 24 GForm อัปโหลดแบบไม่เปลี่ยนหน้าด้วย GAJA HomeForumเกี่ยวกับ GAJAX บทที่ 24 GForm อัปโหลดแบบไม่เปลี่ยนหน้าด้วย GAJA บุ้ง ไม่ทราบว่าเป็นเพราะอะไรครับ ถ้าเป็น ie ตอน alert มันจะเป็นภาษาต่างดาว แต่ถ้า ff อ่านได้ครับ ทั้งที่ ผม save ทุกไฟล์เป็น utf-8 แล้วครับ น่าจะเป็นที่เราไม่สามารถใส่ header ได้หรือป่าวครับ เพราะถ้าใส่ มันจะให้เรา load ไฟล์นั่น ... niti bangjak ผมก็เคยเจอปัญหานี้ครับ ผมใช้วิธีบ้านๆครับหน้า upload.phpผมทำแบบนี้ครับ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <META http-equiv=Content-Type content="text/html; charset=utf-8"> <SCRIPT src="gform2_files/gajax.js" type=text/javascript></SCRIPT> </HEAD> <BODY> <?php if (!in_array($_FILES[file][type], array('image/pjpeg', 'image/jpeg', 'image/jpg', 'image/gif', 'image/png'))) { $ret[] = 'error":"ชนิดของไฟล์ ไม่ถูกต้อง'; } elseif ($_FILES[file][size] > 200 * 1024) { $ret[] = 'error":"ขนาดของไฟล์ มากกว่า 200 kb.'; } else { copy($_FILES[file][tmp_name], 'test.jpg'); $ret[] = 'error":"อัปโหลดเรียบร้อย'; $ret[] = 'image":"test.jpg'; } // คืนค่าเป็น JSON echo '[{"'.implode('","', $ret).'"}]'; ?> </BODY> </HTML> กรกฎ วิริยะ <?php header("content-type: text/html; charset=UTF-8"); if (!in_array($_FILES[file][type], array('image/pjpeg', 'image/jpeg', 'image/jpg', 'image/gif', 'image/png'))) { $ret[] = 'error":"ชนิดของไฟล์ ไม่ถูกต้อง'; } elseif ($_FILES[file][size] > 200 * 1024) { $ret[] = 'error":"ขนาดของไฟล์ มากกว่า 200 kb.'; } else { copy($_FILES[file][tmp_name], 'test.jpg'); $ret[] = 'error":"อัปโหลดเรียบร้อย'; $ret[] = 'image":"test.jpg'; } // คืนค่าเป็น JSON echo '[{"'.implode('","', $ret).'"}]'; ?> หน้ารับไฟล์ เป็น php ครับ ไม่ใช่ HTML ULTRA SE7EN แล้วถ้าต้องการ upload ได้หลายไฟล์ โดย หน้า upload แสดงชื่อไฟล์ได้เรื่อยๆ โดยไม่ reload page แบบ attach file ของ hotmail น่ะค่ะ ต้องทำยังไง ความคิดเห็น รายละเอียด ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 2M ส่งความคิดเห็น
ผมใช้วิธีบ้านๆครับหน้า upload.phpผมทำแบบนี้ครับ
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<SCRIPT src="gform2_files/gajax.js" type=text/javascript></SCRIPT>
</HEAD>
<BODY>
<?php
if (!in_array($_FILES[file][type], array('image/pjpeg', 'image/jpeg', 'image/jpg', 'image/gif', 'image/png'))) {
$ret[] = 'error":"ชนิดของไฟล์ ไม่ถูกต้อง';
} elseif ($_FILES[file][size] > 200 * 1024) {
$ret[] = 'error":"ขนาดของไฟล์ มากกว่า 200 kb.';
} else {
copy($_FILES[file][tmp_name], 'test.jpg');
$ret[] = 'error":"อัปโหลดเรียบร้อย';
$ret[] = 'image":"test.jpg';
}
// คืนค่าเป็น JSON
echo '[{"'.implode('","', $ret).'"}]';
?>
</BODY>
</HTML>
header("content-type: text/html; charset=UTF-8");
if (!in_array($_FILES[file][type], array('image/pjpeg', 'image/jpeg', 'image/jpg', 'image/gif', 'image/png'))) {
$ret[] = 'error":"ชนิดของไฟล์ ไม่ถูกต้อง';
} elseif ($_FILES[file][size] > 200 * 1024) {
$ret[] = 'error":"ขนาดของไฟล์ มากกว่า 200 kb.';
} else {
copy($_FILES[file][tmp_name], 'test.jpg');
$ret[] = 'error":"อัปโหลดเรียบร้อย';
$ret[] = 'image":"test.jpg';
}
// คืนค่าเป็น JSON
echo '[{"'.implode('","', $ret).'"}]';
?>
หน้ารับไฟล์ เป็น php ครับ ไม่ใช่ HTML
แล้วถ้าต้องการ upload ได้หลายไฟล์ โดย หน้า upload แสดงชื่อไฟล์ได้เรื่อยๆ โดยไม่ reload page แบบ attach file ของ hotmail น่ะค่ะ ต้องทำยังไง