A-AA+then

ปัญหาการอัพโหลดไฟล์รูปแล้วแสดงภาพ

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

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

ปัญหานี้เกิดมาจากอะไรค่ะ

3 ความคิดเห็น

ไม่ค่อยเข้าใจคำถามนะครับ...

ปัญหาคือ ชื่อไฟล์ไม่ตรงกันหรือยังไงครับ โดยปกติแล้ว เมื่ออัปโหลดแล้วหากต้องการ preview ทันที ก็ต้องส่งชื่อไฟล์ที่อัปโหลดกลับมา เพื่อแสดงผล ซึ่งถ้าทำแบบนี้แล้วก็ไม่น่ามีปัญหานะครับ

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

ปล. ตัวเลขอาจได้จากการสุ่ม หรือ จากเวลาก็ได้ครับ ซึ่งใจความสำคัญก็คือ มันต้องไม่ซ้ำกันในแต่ละครั้งเท่านั้นครับ
1

แต่หนูเขียนโปรแกรมเป็น AJAX ค่ะ 
อาจารย์ช่วยแนะนำหน่อยนะค่ะ
2

จะ Ajax หรือไม่ก็สาเหตุเดียวกันครับ....

ถ้าปัญหาเกิดจาก cache ก็ให้ใช้ตัวเลขต่อท้ายไฟล์ไป ตามคำตอบด้านบน

3
^