ดรูพัล 9.3
เรามีไซต์ที่อนุญาตให้อัปโหลดไฟล์ส่วนตัว เราได้รับไฟล์ที่ไม่ต่อเนื่องซึ่งไม่สามารถดู/ดาวน์โหลดได้ แม้จะใช้บัญชี "ผู้ใช้ 1"
ไม่มีความแตกต่างระหว่างไฟล์ที่ถูกปฏิเสธและไฟล์อื่นๆ ที่สามารถดูได้ ไฟล์นี้มีอยู่ใน Drupal Files Views และใช้ใน 1 ที่ตามที่คาดไว้ ไฟล์มีอยู่บนเซิร์ฟเวอร์และมีสิทธิ์ UNIX เหมือนกัน
การแก้ไขปัญหาแสดงข้อผิดพลาดการปฏิเสธการเข้าถึงที่มาจากฟังก์ชันการดาวน์โหลดใน:
/web/core/modules/system/src/FileDownloadController.php
ปรากฏว่ามีการตั้งค่าส่วนหัวเป็น -1 ที่ไหนสักแห่ง ดังนั้นฉันจึงลองใช้ hook_file_download() ในโมดูลที่กำหนดเองด้วย น้ำหนัก ตั้งค่าเป็น 100 ดังนั้นควรเริ่มทำงาน
สิ่งที่ทำให้ฉันงุนงงคือตะขอของฉันวิ่งตามน้ำหนักและ "-1" ไม่ได้อยู่ใน $headers แต่เมื่อฟังก์ชันดาวน์โหลดของ FileDownloadController ตรวจสอบว่ามีอยู่
ภาพหน้าจอแสดง dpm($headers) จาก hook_download_file() ของฉันที่รันก่อน จากนั้นตามด้วยฟังก์ชันการดาวน์โหลดหลัก การแทรก -1 อยู่ที่ไหนและเหตุใดจึงไม่ต่อเนื่อง