PHP GD generated image ไม่สามารถแสดงภาพได้เนื่องจากมีข้อผิดพลาดใน Firefox



เมื่อสร้างภาพด้วย PHP ตัวอย่างเช่นการเพิ่มลายน้ำลงในภาพที่เก็บไว้ในเซิร์ฟเวอร์โดยใช้รหัสด้านล่างหรือรูปคล้ายกันกับ JPEG แทน PNG ภาพอาจไม่สามารถสร้างขึ้นได้ทั้งหมดและทำให้เกิดข้อผิดพลาดได้โดยตรงใน Firefox แต่ไม่พบ บน Chrome

โค้ดประเภทนี้แม้ว่าจะทำงานกับเซิร์ฟเวอร์บางเครื่อง แต่ตอนนี้อาจทำงานกับบางอย่างบางครั้งอาจเป็นเพราะเหตุผลที่ไม่ชัดเจน ในกรณีของฉันมันทำงานได้ดีอย่างสมบูรณ์ในประเทศ แต่เกิดข้อผิดพลาดด้านล่างบนเซิร์ฟเวอร์อินเทอร์เน็ตภาพไม่สามารถแสดงผลเนื่องจากมีข้อผิดพลาด

ปัญหาอาจมาจากหลายสาเหตุนี่คือบางส่วนของพวกเขา:

มีการตั้งค่าเอาท์พุทไว้ก่อนหน้านี้แล้ว

ข้อผิดพลาดของแท้จากการสร้างภาพ

ใช้ประเภทของภาพที่ไม่ถูกต้อง

ไม่ได้ติดตั้งไลบรารีรูปภาพ

มีการตั้งค่าเอาท์พุทไว้ก่อนหน้านี้แล้ว

แม้ว่าจะไม่ได้มีเจตนาอาจเป็นเช่นนั้นตัวอย่างเช่นสคริปต์อื่น ๆ ก่อนหน้านี้มีช่องว่างอยู่ที่ท้าย - เพื่อหลีกเลี่ยงข้อผิดพลาดนี้โปรดตรวจสอบว่า PHP แนะนำไม่ให้ปิดสคริปต์ด้วยแท็กสิ้นสุดของ PHP?>

จากนั้นก่อนที่จะใช้ฟังก์ชันส่วนหัวให้ใช้รหัสต่อไปนี้เพื่อให้แน่ใจว่าส่วนหัวที่ตั้งไว้ก่อนหน้านี้ถูกยกเลิก

นอกจากนี้ยังมีฟังก์ชั่นนี้เพื่อให้มั่นใจว่าไม่มีการสร้างเอาท์พุทก่อนส่วนหัวและภาพ

วิธีแก้ปัญหานี้ในกรณีของฉันและภาพถูกแสดงอย่างถูกต้องอีกครั้ง

ข้อผิดพลาดของแท้จากการสร้างภาพ

ในกรณีที่มีข้อผิดพลาดเกิดขึ้นจริงระหว่างการสร้างภาพโปรดตรวจสอบว่า PHP มีการตั้งค่าให้แสดงข้อผิดพลาดที่เป็นไปได้ทั้งหมดและตรวจสอบบันทึกที่สอดคล้องกันเพื่อที่จะสามารถติดตามและแก้ปัญหาได้

รหัสต่อไปนี้จะทำให้ PHP รายงานข้อผิดพลาดทั้งหมดในบันทึก:

การสร้างเว็บไซต์หลัก: ลงทะเบียนตอนนี้!

แปลงสถานะดิจิตอลของคุณด้วยหลักสูตรการสร้างเว็บไซต์ที่ครอบคลุมของเรา - เริ่มต้นการเดินทางสู่การเป็นผู้เชี่ยวชาญด้านเว็บวันนี้!

ลงทะเบียนที่นี่

แปลงสถานะดิจิตอลของคุณด้วยหลักสูตรการสร้างเว็บไซต์ที่ครอบคลุมของเรา - เริ่มต้นการเดินทางสู่การเป็นผู้เชี่ยวชาญด้านเว็บวันนี้!

จากนั้นคุณอาจพบว่ามีข้อผิดพลาดบางอย่างเกิดขึ้นแม้ว่าจะไม่ปรากฏใน html ที่เป็นผลลัพธ์เนื่องจากการกำหนดค่าเซิร์ฟเวอร์

ใช้ประเภทของภาพที่ไม่ถูกต้อง

ตรวจสอบว่าประเภทรูปภาพที่คุณใช้นั้นถูกต้องเช่นใช้รหัสนี้เพื่อแยกแยะระหว่าง png และ jpeg

ตรวจสอบให้แน่ใจว่าส่วนหัวถูกต้องตามเอาต์พุตที่ใช้ขึ้นอยู่กับฟังก์ชันการสร้างภาพที่ใช้

ไม่ได้ติดตั้งไลบรารีรูปภาพ

เพื่อให้แน่ใจว่ามีการติดตั้งไลบรารีรูปภาพไว้ เมื่อต้องการดำเนินการดังกล่าวให้เรียกใช้ฟังก์ชัน phpinfo (); ในสคริปต์และตรวจสอบผลลัพธ์สำหรับค่าต่อไปนี้ที่เกี่ยวข้องกับ PHP GD ไลบรารีกราฟิกที่ใช้โดยฟังก์ชันเช่น imagepng ();

ในกรณีที่แพ็คเกจหายไปวิธีการแก้ปัญหาจะขึ้นอยู่กับการกำหนดค่าภายในของคุณโดยการเพิ่มแพคเกจโดยใช้คำสั่ง PEAR หรือใช้โฮสต์เว็บที่มีอยู่ในโซลูชันสำหรับการติดตั้งแพคเกจ

จะทำอย่างไรเมื่อ imagejpeg หรือ imagepng ไม่ทำงาน

ใน NotePad ++ ให้เปิดไฟล์ PHP ที่เรียกใช้ฟังก์ชั่น imagepng และบันทึกหลังจากไปที่เมนูการเข้ารหัส> แปลงเป็น UTF-8 โดยไม่มี BOM

ใน DreamWeaver ไปที่หน้าคุณสมบัติ> ชื่อ / การเข้ารหัส> ยกเลิกการเลือก Include Unicode Signature (BOM)

เมื่อ PHP imagejpeg หรือ imagepng ไม่ทำงานเป็นไปได้ว่าไฟล์ PHP นั้นถูกเข้ารหัสด้วย BOM, Bill Of Material และข้อมูลเพิ่มเติมจะถูกส่งไปพร้อมกับรูปภาพก่อนข้อมูลรูปภาพ

ฟังก์ชั่น PHP imagejpeg และ PHP imagepng เป็นฟังก์ชั่นที่ใช้ในการส่งรหัสรูปภาพโดยตรงในการตอบกลับของเซิร์ฟเวอร์

PHP - imagepng ทำงานไม่ถูกต้อง
PHP - ฟังก์ชั่น imagepng
PHP - ฟังก์ชั่น imagejpeg

คำถามที่พบบ่อย

ทำไมฉันไม่สามารถแสดงภาพที่สร้างขึ้นด้วย PHP GD ในเบราว์เซอร์ของฉัน
หากภาพที่สร้าง PHP GD ของคุณไม่ได้แสดงและแสดงข้อผิดพลาดในเบราว์เซอร์อาจเป็นเพราะสาเหตุหลายประการเช่นเอาต์พุตก่อนหน้านี้ถูกส่งไปแล้วข้อผิดพลาดของแท้ระหว่างการสร้างภาพโดยใช้ประเภทภาพที่ไม่ถูกต้องหรือไลบรารีภาพ GD กำลังติดตั้ง ตรวจสอบให้แน่ใจว่าไม่มีการส่งเอาต์พุตก่อนหน้านี้ตรวจสอบข้อผิดพลาดของแท้ตรวจสอบประเภทภาพและส่วนหัวและยืนยันการติดตั้งของไลบรารี GD
นักพัฒนาสามารถแก้ไขปัญหาของ PHP GD ที่สร้างภาพที่ไม่แสดงใน Firefox ได้อย่างไรเนื่องจากข้อผิดพลาดได้อย่างไร
นักพัฒนาควรตรวจสอบรหัสการสร้างภาพสำหรับข้อผิดพลาดตรวจสอบให้แน่ใจว่าส่วนหัวประเภทเนื้อหาที่ถูกต้องจะถูกส่งก่อนข้อมูลรูปภาพใด ๆ และตรวจสอบว่าไม่มีข้อผิดพลาด PHP หรือคำเตือนถูกส่งออก การใช้ ob_clean () ก่อนที่จะส่งออกภาพอาจช่วยได้เช่นกัน

Yoann Bierling
เกี่ยวกับผู้แต่ง - Yoann Bierling
Yoann Bierling เป็นผู้เชี่ยวชาญด้านการเผยแพร่เว็บและดิจิตอลให้คำปรึกษาสร้างผลกระทบระดับโลกผ่านความเชี่ยวชาญและนวัตกรรมด้านเทคโนโลยี หลงใหลในการเพิ่มขีดความสามารถของบุคคลและองค์กรให้เติบโตในยุคดิจิตอลเขาได้รับแรงผลักดันให้ส่งมอบผลลัพธ์ที่ยอดเยี่ยมและผลักดันการเติบโตผ่านการสร้างเนื้อหาทางการศึกษา

การสร้างเว็บไซต์หลัก: ลงทะเบียนตอนนี้!

แปลงสถานะดิจิตอลของคุณด้วยหลักสูตรการสร้างเว็บไซต์ที่ครอบคลุมของเรา - เริ่มต้นการเดินทางสู่การเป็นผู้เชี่ยวชาญด้านเว็บวันนี้!

ลงทะเบียนที่นี่

แปลงสถานะดิจิตอลของคุณด้วยหลักสูตรการสร้างเว็บไซต์ที่ครอบคลุมของเรา - เริ่มต้นการเดินทางสู่การเป็นผู้เชี่ยวชาญด้านเว็บวันนี้!




ความคิดเห็น (6)

 2018-08-19 -  Irvin Vasquez
Simple, clear and well explained, many thanks
 2018-08-19 -  Joyce Lawrence
ありがとう、非常に有益な
 2018-08-19 -  Catherine Roberts
Dokładnie tego, czego szukałem, idealnie
 2018-08-19 -  Headlinext
जानकारी का महान टुकड़ा, साझा करने के लिए धन्यवाद
 2018-08-19 -  Marshel
विश्वास नहीं कर सकता कि मुझे अंत में समाधान मिला, यह लंबे समय तक एक दुःस्वप्न था, अब हल हो गया
 2018-08-19 -  porcateraC
بالضبط ما كنت أبحث عنه ، مثالي

ทิ้งข้อความไว้