GORAGOD.com

GORAGOD.com

freelance, web developer, web designer, hosting, domain name

เกี่ยวกับ GAJAX บทที่ 24 GForm อัปโหลดแบบไม่เปลี่ยนหน้าด้วย GAJA

ไม่ทราบว่าเป็นเพราะอะไรครับ ถ้าเป็น ie ตอน alert มันจะเป็นภาษาต่างดาว แต่ถ้า ff อ่านได้ครับ ทั้งที่ ผม save ทุกไฟล์เป็น utf-8 แล้วครับ น่าจะเป็นที่เราไม่สามารถใส่ header ได้หรือป่าวครับ เพราะถ้าใส่ มันจะให้เรา load ไฟล์นั่น ...
04 ส.ค. 2552 3 3,158

ผมก็เคยเจอปัญหานี้ครับ
ผมใช้วิธีบ้านๆครับหน้า 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>
#1

<?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
#2


แล้วถ้าต้องการ upload ได้หลายไฟล์ โดย หน้า upload แสดงชื่อไฟล์ได้เรื่อยๆ โดยไม่ reload page แบบ attach file ของ hotmail น่ะค่ะ ต้องทำยังไง


#3
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 64M
^