ไฟล์ชั่วคราวถูกสร้างที่ไหน?


12

ฉันต้องการทราบว่า Drupal (หรือโมดูล) สร้างไฟล์ชั่วคราวได้ที่ไหน พวกเขาอยู่ในไซต์ / ค่าเริ่มต้นหรือไม่

ฉันกำลังพูดถึง Drupal 6 เป็นพิเศษ


โมดูลสามารถลองสร้างไฟล์ temp ได้ทุกที่บนเว็บไซต์ drupal แต่จะประสบความสำเร็จในกรณีที่การกำหนดค่าเซิร์ฟเวอร์อนุญาตเท่านั้น ดู: drupal.org/node/244924
สิงหาคม 1914

คำตอบ:


16

ไฟล์ถูกสร้างในไดเร็กทอรีที่มีชื่อถูกส่งคืนจากfile_directory_temp ()ซึ่งส่งคืน:

  • ค่าของตัวแปร Drupal "file_temporary_path" ซึ่งถูกตั้งค่าจากหน้าการตั้งค่าบน admin / config / media / file-system (Drupal 7) หรือ admin / settings / file-system (Drupal 6)

  • หากไม่ได้ตั้งค่าตัวแปร Drupal ไว้ฟังก์ชันจะตรวจสอบหนึ่งในไดเรกทอรีต่อไปนี้ หากหนึ่งในไดเรกทอรีเหล่านั้นมีอยู่แล้วมันจะถูกส่งกลับ (และใช้)

    • ไดเรกทอรีส่งคืนจาก ini_get('upload_tmp_dir')
    • บน Windows ไดเรกทอรี "c: \ windows \ temp" และ "c: \ winnt \ temp"
    • บนระบบปฏิบัติการที่แตกต่างจาก Windows ไดเรกทอรี "/ tmp"
    • บน PHP เวอร์ชัน 5.2.1 sys_get_temp_dir()หรือสูงกว่าไดเรกทอรีที่ส่งกลับโดย
  • หากไม่ได้ตั้งค่าตัวแปร "file_temporary_path" และไดเรกทอรีที่ฉันระบุไว้ในจุดก่อนหน้าไม่มีอยู่หรือไม่สามารถเขียนได้ฟังก์ชันใช้ค่าของตัวแปร Drupal "file_public_path"; โดยค่าเริ่มต้นนั้นไดเรกทอรีจะมีค่าconf_path() . '/files'ซึ่งเป็นไดเรกทอรี "ไฟล์" ที่อยู่ในไดเรกทอรีที่มีไฟล์ setting.php ที่ใช้สำหรับไซต์ Drupal

ฟังก์ชันตั้งค่าตัวแปร "file_temporary_path" เป็นไดเร็กทอรีที่พบ

เท่าที่ผมรู้ว่าโมดูลใด ๆ เปิดไฟล์ชั่วคราวโดยใช้เส้นทางที่เริ่มต้นด้วย "ชั่วคราว: //" (ใช้ได้เฉพาะใน Drupal 7 และสูงกว่า) file_directory_temp()หรือการใช้งาน ไดเร็กทอรีที่ส่งคืนจากfile_directory_temp()สามารถเปลี่ยนจากระบบเป็นระบบ แต่โมดูลใช้ไดเรกทอรีนั้นเสมอ

โมดูล Drupal ไม่มีสิทธิ์เขียนไดเรกทอรีที่มีโมดูล มันค่อนข้างยากที่โมดูลจะใช้ไดเรกทอรีนั้นเพื่อสร้างไฟล์ชั่วคราว หากคุณพบโมดูลที่ใช้ไดเรกทอรีที่มีโมดูล (หรือไดเรกทอรีย่อยของไดเรกทอรีนั้น) รายงานว่าเป็นข้อบกพร่อง


คำตอบของคุณนำไปใช้กับ Drupal 6 หรือเพียงแค่ Drupal 7
iStryker

1
มันใช้กับทั้งสองอย่างตามที่file_directory_temp()กำหนดไว้ใน Drupal 6 เช่นกันและโค้ดสำหรับฟังก์ชั่นก็ไม่เปลี่ยนการส่งผ่านจาก Drupal 6 เป็น Drupal 7
kiamlaluno

3

หน้าการตั้งค่าที่ admin / settings / file-system มีการตั้งค่าสำหรับไดเรกทอรีที่ใช้สำหรับไฟล์ชั่วคราว

บางโมดูลสามารถเลือกไดเรกทอรีอื่นสำหรับไฟล์ชั่วคราว ไม่มีตำแหน่งโฟลเดอร์มาตรฐาน

ตัวอย่างเช่นโมดูล ctools จะสร้างไฟล์แคชชั่วคราวในไดเรกทอรี / sites / default / files / ctools ดังนั้นมันอาจแตกต่างกันไป


คุณกำลังบอกว่าโมดูลสามารถสร้างไฟล์ชั่วคราวได้ทุกที่ในเว็บไซต์ drupal หรือไม่? มันสามารถสร้างในรูท / ธีมรูท / โมดูล ฯลฯ ได้หรือไม่?
AgA

ใช่โมดูลสามารถสร้างไฟล์ชั่วคราวได้ทุกที่ พวกเขามักจะเก็บไว้ในโฟลเดอร์เดียวเช่นเดียวกับ ctools จากโมดูลประสบการณ์ของฉันสร้างไดเรกทอรีชั่วคราวของตัวเองหายาก โมดูลส่วนใหญ่ใช้ไดเรกทอรีชั่วคราวเริ่มต้นที่ Chris พูดถึง
iStryker

@iStryker วันนี้ฉันเห็นข้อผิดพลาดในส่วนรายงาน / สถานะของเว็บไซต์ของฉันว่า "ไดเรกทอรีไฟล์ไม่ได้รับการป้องกัน" และแนะนำdrupal.org/forum/newsletters/ ......เพื่อสร้าง. htaccess ในไดเรกทอรีไฟล์และยังใส่ "ปฏิเสธจาก ทั้งหมด "ใน. htaccess พบในไดเรกทอรีไฟล์ชั่วคราวสำหรับการป้องกันการเรียกใช้รหัส ฉันสับสน. มันเป็นโฟลเดอร์ 'tmp' ที่บางโมดูลหรือทุกโมดูลมีโฟลเดอร์ของตัวเองหรือไม่? ฉันต้องใส่ไฟล์. htaccess ไว้ในทุกโฟลเดอร์หรือไม่?
Umair
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.