ฉันรวมรูปภาพไว้ในเว็บไซต์ด้วยการสแกนโฟลเดอร์บนเครื่องของฉันเพื่อหารูปภาพผ่าน PHP และสร้างโค้ด HTML ที่จำเป็น ( <img...>
) แต่เบราว์เซอร์ไม่แสดงรูปภาพแทน - ตามลิงค์ไปยังรูปภาพ - "ต้องห้าม: คุณไม่มีสิทธิ์เข้าถึง ... "
การอนุญาตถูกตั้งค่าเป็น 755 (โฟลเดอร์) และ 644 (ไฟล์) เมื่อฉันเปิดภาพใน Gimp และบันทึกเป็นไฟล์ใหม่เบราว์เซอร์จะแสดงรูปภาพแม้ว่าฉันจะไม่เปลี่ยนแปลงอะไรก็ตาม เพียงแค่เปิดและบันทึก สิ่งนี้คือฉันมีหลายร้อยภาพและฉันไม่ต้องการที่จะดำเนินการเปิดทุกภาพเป็นรายบุคคล ไฟล์ใหม่และไฟล์ต้นฉบับมีสิทธิ์เหมือนกัน นี่เป็นข้อพิสูจน์: ไฟล์ที่มีเครื่องหมายขีดล่างอยู่ท้ายสุด (Baummarder Mai 14_.JPG) ที่เหลือไม่ได้
เพื่อความชัดเจน: ฉันมีรูปภาพทำงานและไม่ทำงานในโฟลเดอร์เดียวกัน ไฟล์ที่ฉันบันทึกเป็นไฟล์ใหม่ด้วย Gimp จะแสดงในขณะที่ไฟล์ต้นฉบับ (ในโฟลเดอร์เดียวกัน) แสดงรูปภาพเริ่มต้น "acces ปฏิเสธ"
Error_log พูดว่า:
(13)Permission denied: [client 127.0.0.1:38192] AH00035: access to /auwaldstation/quiz/Wildkamera/Bilder/Wildschwein/SchweinCdy00008.JPG denied (filesystem path '/var/www/html/auwaldstation/quiz/Wildkamera/Bilder/Wildschwein/SchweinCdy00008.JPG') because search permissions are missing on a component of the path, referer: http://localhost/auwaldstation/quiz/wildkamera_bilder.php
แม้ว่าfilepath ที่สมบูรณ์จะไม่ถูกตั้งค่าเป็น 755
(ไม่ต้องกังวลว่ามันเป็นไฟล์ที่แตกต่างกันในโฟลเดอร์ย่อยที่แตกต่างกัน - การอนุญาตและวิธีรวมไว้ในหน้า IS เหมือนกัน)
ฉันอยากรู้มากเกี่ยวกับสิ่งที่อาจเป็นปัญหา อาจเป็นเพราะ meta-data หรือไม่ ฉันตรวจสอบสิ่งเหล่านั้น แต่ไม่พบสิ่งใดที่ชัดเจน เป็นไปได้หรือไม่ว่าไฟล์เหล่านั้นเกิดความเสียหายหรือมีข้อมูลเมตา / ส่วนหัวที่ไม่ถูกต้องหรือสิ่งใดก็ตามที่ทำให้เกิดพฤติกรรมดังกล่าว มันเป็นข้อผิดพลาดที่แปลก / คุณสมบัติของการจัดการสิทธิ์เช่นไฟล์ที่ฉันไม่ได้สร้างฉันไม่ได้เป็นเจ้าของ?
มีวิธีแก้ปัญหานี้ไหม? เป็นไปได้ไหมที่จะแสดงรูปภาพเหล่านั้นด้วยการใช้ PHP-magic?
UPDATE : ฉันเพิ่งพบว่า PHP-code ต่อไปนี้ไม่รู้จักรูปภาพต้นฉบับเป็นรูปภาพเลย สิ่งที่สร้างขึ้นใหม่จะรับรู้เป็นรูปภาพได้
function is_image($path)
{
$a = getimagesize($path);
$image_type = $a[2];
if(in_array($image_type , array(IMAGETYPE_GIF , IMAGETYPE_JPEG ,IMAGETYPE_PNG , IMAGETYPE_BMP)))
{
return true;
}
return false;
}
Btw: ภาพที่ถ่ายโดยกล้องเวบแคม ไม่มีข้อขัดแย้งด้านลิขสิทธิ์ที่เกี่ยวข้อง
การใช้: Fedora 23, Apache 2.4.23, PHP, HTML / CSS