เนื้อหาส่วนใหญ่ของทรัพยากรบนเว็บในปัจจุบันสร้างขึ้นแบบไดนามิกโดยสคริปต์ฝั่งเซิร์ฟเวอร์ แต่ด้วยวิธีนี้ ข้อมูลข้อความส่วนใหญ่จะแสดง (เค้าโครงหน้า สไตล์ชีต แผนผังเว็บไซต์) ตามกฎแล้วรูปภาพเพลงวิดีโอไฟล์เก็บถาวรจะอยู่บนเซิร์ฟเวอร์ในรูปแบบของไฟล์คงที่ อย่างไรก็ตาม บางครั้งจำเป็นต้องสร้างข้อมูลที่คล้ายกันโดยใช้สคริปต์ ดังนั้น หากคุณต้องการแสดงภาพนิ่ง คุณสามารถแทรกลงในสคริปต์ได้อย่างสมบูรณ์
จำเป็น
ความสามารถในการสร้างหรือแก้ไขสคริปต์เซิร์ฟเวอร์
คำแนะนำ
ขั้นตอนที่ 1
แทรกรูปภาพเหล่านี้ลงในสคริปต์เป็นข้อความ ซึ่งเป็นส่วนหนึ่งของรหัสโปรแกรม ใช้โครงสร้างข้อมูลและโครงสร้างทางวากยสัมพันธ์ที่สะดวกที่สุด ทางเลือกมักจะถูกกำหนดโดยความสามารถของภาษาโปรแกรมที่ใช้ ดังนั้น ในหลายกรณีจึงสะดวกที่จะแทรกรูปภาพลงในสคริปต์เป็นสตริงอักขระปกติ เนื้อหาที่เป็นข้อมูลรูปภาพที่เข้ารหัสด้วยอัลกอริธึมเช่น Base64 ใน PHP อาจมีลักษณะเช่นนี้ (ภาพ.
ขั้นตอนที่ 2
เตรียมภาพสำหรับการส่งออก ถอดรหัสข้อมูลเดิมหากจำเป็น คุณควรได้รับบัฟเฟอร์ที่มีข้อมูลไบนารีของรูปภาพ ตัวอย่างเช่น ใน PHP การถอดรหัสสตริงที่ระบุในขั้นตอนแรกอาจมีลักษณะดังนี้: $ text = base64_decode ($ str);
ขั้นตอนที่ 3
ในส่วนหัวของการตอบสนอง HTTP ของเซิร์ฟเวอร์ ให้เพิ่มฟิลด์ที่มีข้อมูลเกี่ยวกับความยาวของเนื้อหาการตอบสนอง (ขนาดของรูปภาพที่แสดง) กำหนดขอบเขตโดยใช้ฟังก์ชันหรือวิธีการที่ส่งกลับความยาวของอาร์เรย์ สตริง ฯลฯ ตัวอย่างเช่น: ส่วนหัว ('ความยาวเนื้อหา:'.strlen ($ text));
ขั้นตอนที่ 4
เพิ่มฟิลด์ในส่วนหัวการตอบสนอง HTTP ของเซิร์ฟเวอร์ที่ระบุประเภท mime ของเนื้อหาที่ถ่ายโอน ตัวอย่างเช่น: ส่วนหัว ('ประเภทเนื้อหา: รูปภาพ / gif'); ต้องทราบประเภทเนื้อหาแล้ว (กำหนดตามรูปแบบของภาพต้นฉบับ)
ขั้นตอนที่ 5
หากคุณต้องการบังคับให้บันทึกรูปภาพแทนที่จะแสดงโดยเบราว์เซอร์ ให้เพิ่มฟิลด์ที่เหมาะสมในส่วนหัวตอบกลับ: ส่วนหัว ("Content-Disposition: attachment; filename = my_image.gif");
ขั้นตอนที่ 6
หากคุณต้องการหลีกเลี่ยงการแคชรูปภาพโดยเบราว์เซอร์ ให้ป้อนฟิลด์ Pragma และ cache-Control ด้วยค่าที่เหมาะสมในการตอบสนอง HTTP: header ("Pragma: no-cache"); ส่วนหัว ("Cache-Control: no -cache, must-revalidate, no-store "); ส่วนหัว (" Cache-Control: pre-check = 0, post-check = 0 ", false); นอกจากนี้ยังควรระบุวันที่ของการแก้ไขล่าสุดและการหมดอายุ วันที่ของทรัพยากร ในกรณีนี้ รายการที่สองจะต้องเป็นภายหลัง: header ("Expires: Mon, 4 Jan 1993 00:00:01 GMT"); header ("Last-Modified:".gmdate ("D, d MYH: i: s") "GMT");
ขั้นตอนที่ 7
สร้างเนื้อความของการตอบสนอง HTTP ของเซิร์ฟเวอร์ ซึ่งเป็นข้อมูลรูปภาพ ใช้ฟังก์ชันหรือวิธีการของออบเจ็กต์ที่ให้เอาต์พุตของข้อมูลไบนารีโดยไม่ต้องประมวลผลเพิ่มเติม ตัวอย่างเช่น printf ('% s', $ text);