ปัญหาการอัพโหลดไฟล์รูปแล้วแสดงภาพ
สวัสดีค่ะอาจารย์
หนูเขียนโปรแกรมหน้าอัพโหลดรูปภาพ เมื่ออัพเสร็จแล้วก็แสดงภาพนั้นขี้นมาแสดงให้ผู้ใช้ดู
ถ้าหากว่าหนูอัพโหลดรูปขึ้นไปโดยไม่ได้เปลี่ยนชื่อไฟล์ รูปที่แสดงขึ้นมาก็จะตรงกับรูปที่เราอัพขึ้นล่าสุด
แต่หนูต้องการเปลี่ยนชื่อไฟล์ที่เก็บไว้ในเซิฟเวอร์
การเปลี่ยนชื่อไฟล์สามารถทำได้ แต่รูปที่แสดงในหน้าจอเมื่ออัพโหลดรูปเสร็จแล้ว กับรูปที่เราอัพขึ้นล่าสุดเป็นรูปที่ไม่ตรงกัน
ในหน้าจอเป็นรูปเดิมที่เคยอัพไว้ รูปในเซิฟเวอร์เป็นรูปที่เราต้องการอัพขึ้นไปล่าสุด
ปัญหานี้เกิดมาจากอะไรค่ะ
หนูเขียนโปรแกรมหน้าอัพโหลดรูปภาพ เมื่ออัพเสร็จแล้วก็แสดงภาพนั้นขี้นมาแสดงให้ผู้ใช้ดู
ถ้าหากว่าหนูอัพโหลดรูปขึ้นไปโดยไม่ได้เปลี่ยนชื่อไฟล์ รูปที่แสดงขึ้นมาก็จะตรงกับรูปที่เราอัพขึ้นล่าสุด
แต่หนูต้องการเปลี่ยนชื่อไฟล์ที่เก็บไว้ในเซิฟเวอร์
การเปลี่ยนชื่อไฟล์สามารถทำได้ แต่รูปที่แสดงในหน้าจอเมื่ออัพโหลดรูปเสร็จแล้ว กับรูปที่เราอัพขึ้นล่าสุดเป็นรูปที่ไม่ตรงกัน
ในหน้าจอเป็นรูปเดิมที่เคยอัพไว้ รูปในเซิฟเวอร์เป็นรูปที่เราต้องการอัพขึ้นไปล่าสุด
ปัญหานี้เกิดมาจากอะไรค่ะ
ปัญหาคือ ชื่อไฟล์ไม่ตรงกันหรือยังไงครับ โดยปกติแล้ว เมื่ออัปโหลดแล้วหากต้องการ preview ทันที ก็ต้องส่งชื่อไฟล์ที่อัปโหลดกลับมา เพื่อแสดงผล ซึ่งถ้าทำแบบนี้แล้วก็ไม่น่ามีปัญหานะครับ
แต่หากเป็นการเปลี่ยนรูปภาพ เช่นมีรูปภาพแสดงอยู่แล้ว และต้องการเปลี่ยนรูปภาพ แต่ภาพที่ต้องการไม่เปลี่ยน (อัปโหลดไฟล์โดยใช้ชื่อไฟล์เดิมที่เคยอัปโหลดไปแล้ว) อาจมีปัญหาจาก cache ก็ได้ครับ การแก้ปัญหาในกรณีนี้คือ ใส่ ตัวเลขสุ่มกลับมากับชื่อไฟล์ เพื่อบังคับให้ Browser โหลดไฟล์ใหม่ครับ เช่น รูปเดิมคือ http.www.xxx.com/image.jpg หากมีการอัปโหลดโดยใช้ชื่อเดิม รูปใหม่ควรเป็น http://www.xxx.com/image.jpg?123456 ซึ่งเราจะอัปโหลดเป็นชื่อ image.jpg เหมือนเดิมครับ ตัวเลขที่ต่ท้าย เป็นการบังให้บราวเซอร์โหลดไฟล์ใหม่เท่านั้นครับ
ปล. ตัวเลขอาจได้จากการสุ่ม หรือ จากเวลาก็ได้ครับ ซึ่งใจความสำคัญก็คือ มันต้องไม่ซ้ำกันในแต่ละครั้งเท่านั้นครับ
อาจารย์ช่วยแนะนำหน่อยนะค่ะ
ถ้าปัญหาเกิดจาก cache ก็ให้ใช้ตัวเลขต่อท้ายไฟล์ไป ตามคำตอบด้านบน