safe_mode = บนคำสั่ง mkdir และการแก้ปัญหาเกี่ยวกับการสร้างโฟลเดอร์บนเซิร์ฟเวอร์ ฟังก์ชัน Mkdir ใน PHP คำอธิบายและตัวอย่าง Php สร้างโฟลเดอร์ที่มีหมายเลขตามลำดับ

ฟังก์ชัน mkdir() สร้างโฟลเดอร์ใหม่ในไดเร็กทอรีที่ระบุ หากการสร้างสำเร็จ จะส่งกลับ True เมื่อสร้างโฟลเดอร์ใหม่ คุณสามารถตั้งค่าสิทธิ์การเข้าถึงโฟลเดอร์ได้โดยใช้พารามิเตอร์ $mode ด้วยการตั้งค่า $recursive เป็น True คุณสามารถสร้างหลายโฟลเดอร์ย่อยได้

PHP เวอร์ชัน 4 ขึ้นไป

ฟังก์ชันบูล mkdir(สตริง $pathname [, int $mode [, bool $recursive [, ทรัพยากร $context]]])

พารามิเตอร์ฟังก์ชัน mkdir

$ชื่อพาธเส้นทางไปยังไดเร็กทอรีที่จะสร้าง
$โหมดสิทธิ์ในโฟลเดอร์ที่สร้างขึ้น สิทธิ์ถูกกำหนดเป็นค่าฐานแปดโดยมีศูนย์บังคับเป็นอันดับแรก (0777) นอกเหนือจากศูนย์ตัวแรกแล้ว ตัวเลขยังแสดงถึงระดับการเข้าถึงสำหรับเจ้าของ สำหรับกลุ่มของเจ้าของ และสำหรับคนอื่นๆ ทั้งหมด
ระดับการเข้าถึงถูกกำหนดโดยตัวเลข:
0 – การเข้าถึงถูกปฏิเสธ;
1 – การเข้าถึงเพื่ออ่าน;
2 – การเข้าถึงการเขียน;
4 – การเข้าถึงการดำเนินการ
ส่วนใหญ่แล้ว สิทธิ์จะถูกระบุเป็นจำนวนรวม เช่น:
7 – เข้าถึงแบบเต็ม (1+2+4);
5 – การอ่านและการดำเนินการ (1+4)
ค่าเริ่มต้นคือ 0777
$แบบเรียกซ้ำพารามิเตอร์บูลีนที่กำหนดว่าสามารถสร้างไดเร็กทอรีย่อยที่ซ้อนกันได้หรือไม่
$บริบทใช้เมื่อทำงานกับสตรีม เพิ่มใน PHP 5.0.0

ตัวอย่างการใช้ฟังก์ชัน mkdir

เอ็มเคดิร์( "แฟ้มใหม่" );

เอ็มเคดิร์( "../แฟ้มใหม่" ); // ลงไปหนึ่งระดับ

mkdir("/folder1/folder2/newfolder" ); //เส้นทางเต็ม

เอ็มเคดิร์( "โฟลเดอร์ใหม่" , 0777); // สร้างโฟลเดอร์ที่มีสิทธิ์ที่กำหนด

หากคุณต้องการสร้างหลายโฟลเดอร์ย่อย คุณต้องตั้งค่า $recursive = True

mkdir("folder1/folder2/newfolder" , 0777, จริง ); // สร้างโฟลเดอร์ในไดเร็กทอรีปัจจุบัน

PHP มีฟังก์ชันเดียว - mkdir() ซึ่งช่วยให้คุณสร้างไดเร็กทอรีบนเซิร์ฟเวอร์ของเว็บไซต์ ซึ่งบางครั้งก็จำเป็นสำหรับครัวเรือน ตัวอย่างเช่น เมื่อสร้างเนื้อหาใหม่ คุณจะต้องสร้างโฟลเดอร์สำหรับเนื้อหานั้น โดยที่เมื่อใช้ CMS ของคุณ คุณจะอัปโหลดไฟล์ที่จำเป็นทั้งหมดอีกครั้ง

Mkdir("/path/to/my/dir", 0700);

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

แต่นี่คือจุดที่เกิดปัญหากับ mkdir() เมื่อรันสคริปต์ php นี้โดยเปิดใช้งานฟังก์ชันเซิร์ฟเวอร์ safe_mode เจ้าของ (UID) จะถูกตรวจสอบ และหากเจ้าของสคริปต์และโฟลเดอร์ไม่ตรงกัน คุณอาจไม่สามารถเขียนไฟล์ไปยังไฟล์ที่สร้างขึ้นได้ ไดเร็กทอรี ลบไฟล์ในนั้น หรือผ่าน FTP คุณจะไม่สามารถลบโฟลเดอร์นั้นได้

แต่มีวิธีแก้ปัญหาที่หรูหรากว่านี้สำหรับปัญหานี้ โดยไม่จำเป็นต้องขอให้โฮสต์ปิดการใช้งานฟังก์ชัน safe_mode ให้กับคุณ (ฟังก์ชันนี้จะเปิดใช้งานบนไซต์โฮสติ้งทั้งหมดตามค่าเริ่มต้น เพื่อให้มั่นใจในความปลอดภัย) โดยพื้นฐานแล้ว บริการโฮสติ้งแบบชำระเงินยังให้การเข้าถึง ftp และนี่คือสิ่งที่เราจะเริ่มต้น

$conn_ftp = @ftp_connect("your_ftp_server", 21, 5);

ตัวแปรตัวแรกในฟังก์ชันคือที่อยู่ของเซิร์ฟเวอร์ ftp ของคุณ ตัวที่สองคือพอร์ตที่คุณเชื่อมต่อกับ ftp และตัวสุดท้ายคือระยะหมดเวลาการเชื่อมต่อที่อนุญาต เล็กน้อยเกี่ยวกับการหมดเวลาจำเป็นสำหรับการดำเนินการเครือข่ายในภายหลัง หากคุณไม่ป้อนค่าเริ่มต้นจะตั้งไว้ที่ 90 วินาที หลังจากการเชื่อมต่อเราจะตรวจสอบว่าสำเร็จหรือไม่แล้วส่งข้อมูลเข้าสู่ระบบและรหัสผ่าน:

If($conn_ftp) // การเชื่อมต่อสำเร็จ ( $login_result = @ftp_login($conn_ftp, "user", "pass"); // ป้อนข้อมูลเข้าสู่ระบบและรหัสผ่านของคุณสำหรับ FTP if($login_result) // เข้าสู่ระบบและยืนยันรหัสผ่านผ่าน สำเร็จ(ftp_pasv($conn_ftp, TRUE);))

หลังจากตรวจสอบการเข้าสู่ระบบและรหัสผ่านแล้ว เราจำเป็นต้องตัดสินใจเลือกโหมดพาสซีฟและตั้งค่าเป็น TRUE หรือ FALSE - นี่เป็นสิ่งจำเป็นหากฟังก์ชัน FTP เพิ่มเติมทำงานไม่ถูกต้อง หลังจากกำหนดโหมดพาสซีฟแล้ว เราสามารถสร้างโฟลเดอร์ของเราได้ ฉันจะอธิบายฟังก์ชันทั้งหมดที่อาจเป็นประโยชน์สำหรับคุณในอนาคต:

$file = ftp_mkdir($conn_ftp, "public_html/materials/345"); // การสร้างไดเร็กทอรี 345 ในโฟลเดอร์ Materials หากไม่มีโฟลเดอร์ Materials // มันจะถูกสร้างขึ้นเช่นเดียวกันกับโฟลเดอร์ public_html (ไดเร็กทอรีนี้ // ถูกระบุเพื่อให้คุณเห็นเส้นทางทั้งหมด มิฉะนั้น เพียงโฟลเดอร์ที่มีไซต์) ftp_chdir($conn_ftp, "public_html/materials"); //หากคุณมีโฟลเดอร์ Materials แน่นอน คุณไม่จำเป็นต้องเขียนทั้ง //path คุณสามารถไปที่โฟลเดอร์นั้นก่อนแล้วจึงสร้างโฟลเดอร์ 345 ในนั้นโดยใช้ //โค้ดต่อไปนี้ ftp_mkdir ($conn_ftp, "345") ftp_chmod($ conn_ftp, 0777, $ไฟล์); //โฟลเดอร์ทั้งหมดจะถูกสร้างขึ้นด้วยโหมด 0755 โดยค่าเริ่มต้น คำสั่งนี้จะช่วยให้คุณเปลี่ยน //เป็น 0777 ซึ่งจะช่วยให้คุณสามารถเพิ่มไฟล์ลงในโฟลเดอร์ที่สร้างขึ้นได้

ตอนนี้ฉันจะยกตัวอย่างโค้ดการทำงานที่สมบูรณ์เพื่อให้คุณเห็นว่าโค้ดทั้งหมดมีลักษณะอย่างไร เช่น ของฉัน:

$dir_name = เวลา(); //ที่นี่ ฉันสร้างชื่อโฟลเดอร์ตามเวลาที่สคริปต์เปิดตัว $conn_ftp = @ftp_connect("your_ftp_server", 21, 5); if($conn_ftp) // การเชื่อมต่อสำเร็จ ( $login_result = @ftp_login($conn_ftp, "user", "pass"); // ป้อนข้อมูลเข้าสู่ระบบและรหัสผ่านของคุณสำหรับ FTP if($login_result) // ผ่านการตรวจสอบเข้าสู่ระบบและรหัสผ่านแล้ว ความสำเร็จ ( ftp_pasv ($conn_ftp, TRUE); ftp_chdir ($conn_ftp, "public_html/วัสดุ"); ftp_mkdir ($conn_ftp, $dir_name); ftp_chmod($conn_ftp, 0777, $dir_name); ) )

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

ลบแท็ก (12)

ฉันพบหลายกรณีกับการติดตั้ง WordPress จาก Bluehost ซึ่งฉันพบข้อผิดพลาดในธีม WordPress ของฉันเนื่องจากโฟลเดอร์ uploads wp-content/uploads หายไป

เห็นได้ชัดว่าตัวติดตั้ง Bluehost cPanel WP ไม่ได้สร้างโฟลเดอร์นี้ แม้ว่า HostGator จะสร้างก็ตาม

ดังนั้นฉันจึงต้องเพิ่มโค้ดลงในธีมของฉันที่จะตรวจสอบโฟลเดอร์และสร้างเป็นอย่างอื่น

คำตอบ

ลองมัน:

ถ้า (!file_exists("path/to/directory")) ( mkdir("path/to/directory", 0777, true); )

โปรดทราบว่า 0777 เป็นโหมดเริ่มต้นสำหรับไดเร็กทอรีอยู่แล้ว และยังคงสามารถเปลี่ยนแปลงได้โดย umask ปัจจุบัน

WordPress ยังมีฟังก์ชันที่มีประโยชน์มาก wp_mkdir_p ซึ่งจะสร้างโครงสร้างไดเร็กทอรีแบบวนซ้ำ

แหล่งอ้างอิง:-

ฟังก์ชั่น wp_mkdir_p($target) ( $wrapper = null; // ตัดโปรโตคอล if(wp_is_stream($target)) ( list($wrapper, $target) = explode("://", $target, 2); ) // จากผู้ใช้ php.net/mkdir บันทึกย่อ $target = str_replace("//", "/", $target); // วาง wrapper กลับไปที่เป้าหมาย if($wrapper !== null) ( $target ); = $wrapper . "://" . $target; ) // เซฟโหมดล้มเหลวด้วยเครื่องหมายทับภายใต้ PHP บางเวอร์ชัน if (empty($target)) $target = "/"; if (file_exists($target)) return @is_dir($target); ที่มีอยู่และสืบทอดสิ่งนั้น " != $target_parent && ! is_dir($target_parent)) ( $target_parent = dirname($target_parent); ) // รับบิตการอนุญาต if ($stat = @stat($target_parent)) ( $dir_perms = $stat[ "mode"] & 0007777; ) else ( $dir_perms = 0777; ) if (@mkdir($target, $dir_perms, true)) ( // หากตั้งค่า umask ที่แก้ไข $dir_perms เราจะต้อง- ตั้งค่า $dir_perms อย่างถูกต้องด้วย chmod() if ($dir_perms != ($dir_perms & ~umask())) ( $folder_parts = explode( "/", substr($target, strlen($target_parent) + 1)); สำหรับ ($i = 1; $i<= count($folder_parts); $i++) { @chmod($target_parent . "/" . implode("/", array_slice($folder_parts, 0, $i)), $dir_perms); } } return true; } return false; }

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

include_once("../include/session.php"); $lnum = $เซสชัน->lnum; // หมายเลขใบอนุญาตผู้ใช้จากเซสชัน $directory = uploaded_labels; // ชื่อของไดเร็กทอรีที่โฟลเดอร์กำลังถูกสร้างขึ้น if (!file_exists($directory"/".$lnum)) ( mkdir($directory"/".$lnum, 0777, true); )

มีบางอย่างที่กว้างกว่านี้เมื่อปรากฏบน Google แม้ว่ารายละเอียดจะเจาะจงกว่า แต่ชื่อของคำถามนี้ก็กว้างกว่า

/** * สร้างเส้นทางไดเร็กทอรีแบบยาวซ้ำ ๆ */ function createPath($path) ( if (is_dir($path)) return true; $prev_path = substr($path, 0, strrpos($path, "/", - 2) + 1); $return = createPath($prev_path); return ($return && is_writable($prev_path)) ?

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

สามารถปรับปรุงได้โดยการระบุระดับการหยุด ดังนั้นมันจึงล้มเหลวหากออกไปนอกโฟลเดอร์ของผู้ใช้หรืออะไรบางอย่าง และเปิดใช้งานการอนุญาต

เพื่อสร้างโฟลเดอร์หากไม่มีอยู่

การพิจารณาประเด็นด้านสิ่งแวดล้อม

  • เวิร์ดเพรส.
  • เซิร์ฟเวอร์เว็บโฮสติ้ง
  • สมมติว่า Linux ไม่ได้ใช้ PHP

บูล mkdir(สตริง $pathname[, int $mode=0777[, bool $recursive=FALSE[, ทรัพยากร$context]]])

คู่มือระบุว่าพารามิเตอร์ที่จำเป็นเท่านั้นคือ $pathname !

ดังนั้นเราจึงสามารถเขียนโค้ดได้:

คำอธิบาย:

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

  • คำสั่งจะสร้างโฟลเดอร์ที่มีสิทธิ์ 0755 (สิทธิ์เริ่มต้นสำหรับโฟลเดอร์สาธารณะ) หรือ 0777 ซึ่งเป็นสิทธิ์เริ่มต้นสำหรับคำสั่ง
  • โหมดจะถูกละเว้น โฮสต์ Windows ที่ใช้ PHP .
  • คำสั่ง mkdir มีการตรวจสอบในตัวว่ามีโฟลเดอร์อยู่หรือไม่ ดังนั้นเราจึงต้องตรวจสอบการส่งคืน True | เท่านั้น เท็จ; และนี่ไม่ใช่ข้อผิดพลาด แต่เป็นคำเตือนเท่านั้น และคำเตือนจะถูกปิดใช้งานบนเซิร์ฟเวอร์โฮสต์ตามค่าเริ่มต้น
  • ขึ้นอยู่กับความเร็ว มันจะเร็วขึ้นหากปิดใช้งานคำเตือน

นี่เป็นอีกวิธีหนึ่งในการดูคำถาม และไม่อ้างว่าเป็นทางออกที่ดีที่สุดหรือเหมาะสมที่สุด

ทดสอบบน PHP7, เซิร์ฟเวอร์ที่ใช้งานจริง, Linux

คุณยังสามารถลอง:

$dirpath = "เส้นทาง/ถึง/dir"; $โหมด = "0777"; is_dir($dirpath) || mkdir($dirpath, $mode, จริง);

ถ้า (!is_dir("path_directory")) ( @mkdir("path_directory"); )

วิธีสร้างโฟลเดอร์ที่รวดเร็วยิ่งขึ้น:

ถ้า (!is_dir("path/to/directory")) ( mkdir("path/to/directory", 0777, true); )

คุณทำ

Printf("สวัสดี %s,
", $ชื่อ);

ก่อนที่จะติดตั้งคุกกี้ซึ่งเป็นสิ่งต้องห้าม คุณไม่สามารถส่งข้อมูลใดๆ ก่อนส่วนหัวได้ แม้แต่บรรทัดว่างก็ตาม


อนุญาตให้ตีพิมพ์บทความนี้ได้เฉพาะเมื่อมีลิงก์ไปยังเว็บไซต์ของผู้เขียนบทความเท่านั้น

ในบทความนี้ ฉันจะอธิบายทางเลือกหนึ่งสำหรับแก้ไขปัญหาการสร้างโฟลเดอร์โดยใช้ php ในเซฟโหมด
ในการสร้างโฟลเดอร์ใน PHP มีฟังก์ชัน mkdir() มาตรฐาน แต่ในกรณีส่วนใหญ่ กลับกลายเป็นว่าไร้ประโยชน์และหลายๆ คนก็รู้เรื่องนี้ แต่มีน้อยคนที่รู้ว่าคุณสามารถแก้ไขปัญหานี้ได้
ทุกอย่างง่ายมาก คุณต้องสร้างโฟลเดอร์โดยใช้ฟังก์ชัน FTP ที่สร้างไว้ใน php
ด้านล่างฉันเขียนเกี่ยวกับเรื่องนี้โดยละเอียด

มีปัญหากับ mkdir() เมื่อสร้างโฟลเดอร์
ดังที่คุณทราบ หากเปิดใช้งานเซฟโหมดใน php (safe_mode = on) การสร้างโฟลเดอร์ (ไดเร็กทอรี) โดยใช้ mkdir() จะไม่ทำงาน เพื่อให้แม่นยำยิ่งขึ้นคุณสามารถสร้างมันขึ้นมาได้ แต่จะไม่สามารถใช้โฟลเดอร์นี้ต่อไปได้ คุณจะไม่สามารถอัพโหลดไฟล์ไปยังโฟลเดอร์นี้ได้ คุณจะไม่สามารถเปลี่ยนชื่อมันได้ และคุณจะไม่สามารถลบมันได้ แม้ว่าคุณจะเข้าสู่ระบบผ่าน FTP (ในบางกรณี คุณสามารถลบผ่าน FTP ได้)

เซฟโหมดจะเปิดใช้งานตามค่าเริ่มต้นบนเซิร์ฟเวอร์ทั้งหมดและผู้ให้บริการโฮสต์ทั้งหมด หากคุณไม่มีตัวเลือกในการปิดใช้งาน Safe Mode แสดงว่ามีวิธีอื่น

การสร้างโฟลเดอร์ใน php โดยใช้ FTP
เซิร์ฟเวอร์และโฮสติ้งเกือบทั้งหมดรองรับ ftp ใน php
ด้วยความช่วยเหลือของฟังก์ชันเหล่านี้ เราจะแก้ไขปัญหาในการสร้างโฟลเดอร์ mkdir()
ตัวอย่างการสร้างโฟลเดอร์ผ่าน FTP

$conn_id = @ ftp_connect ("ftp.server.ru" , 21 , 5 ); // เชื่อมต่อกับเซิร์ฟเวอร์ FTP
ถ้า($conn_id) // หากเชื่อมต่อกับเซิร์ฟเวอร์สำเร็จ ให้ดำเนินการต่อ
{
$login_result = @ftp_login($conn_id, "ผู้ใช้", "ผ่าน"); // ป้อนข้อมูลเข้าสู่ระบบและรหัสผ่านของคุณสำหรับ FTP
ถ้า($login_result) // หากเซิร์ฟเวอร์ยอมรับรหัสผ่านเข้าสู่ระบบ ให้ดำเนินการต่อ
{
// ตอนนี้คุณต้องเล่นกับโหมดพาสซีฟ เปิดหรือปิด (TRUE, FALSE)
// หากฟังก์ชัน ftp เพิ่มเติมทำงานไม่ถูกต้อง ให้ลองเปลี่ยนพารามิเตอร์นี้ (TRUE หรือ FALE)
ftp_pasv($conn_id, จริง); // ในกรณีนี้เปิดใช้งานโหมดพาสซีฟ
ftp_mkdir($conn_id, "1/2/3"); // และการสร้างโฟลเดอร์เอง
}
}
ftp_close($conn_id); // และปิดการเชื่อมต่อ FTP
?>
ตอนนี้ไม่ใช่ความคิดเห็นใหญ่เกี่ยวกับโค้ด
บรรทัดแรกเชื่อมต่อกับเซิร์ฟเวอร์ FTP โดยปกติ ในการเชื่อมต่อกับเซิร์ฟเวอร์ FTP ภายในเครื่อง การระบุ localhost เป็นเซิร์ฟเวอร์ก็เพียงพอแล้ว แต่คุณสามารถระบุที่อยู่แบบเต็มได้เช่นกัน
การเปิดหรือปิดใช้งานโหมดพาสซีฟจะขึ้นอยู่กับการตั้งค่า FTP

เมื่อสร้างโฟลเดอร์ โปรดใช้ความระมัดระวัง โฟลเดอร์จะถูกสร้างขึ้นจากรูทล็อกอิน FTP นั่นคือเส้นทางที่นี่แตกต่างจากเส้นทางระบบไฟล์และโฟลเดอร์จะถูกสร้างขึ้นตามที่เห็นผ่าน FTP
หากเมื่อสร้างโฟลเดอร์ คุณระบุไฟล์แนบหลายรายการ ดังตัวอย่าง "1/2/3" ของฉัน ในกรณีนี้ โฟลเดอร์ที่หายไปทั้งหมดจะถูกสร้างขึ้น หากไม่มีโฟลเดอร์ "1" มันจะถูกสร้างขึ้นและโฟลเดอร์ "2" จะถูกสร้างขึ้นในนั้นและโฟลเดอร์ "3" จะถูกสร้างขึ้นในนั้น หากมีโฟลเดอร์กลางอยู่แล้ว เฉพาะโฟลเดอร์ที่ขาดหายไปเท่านั้นที่จะถูกสร้างขึ้น
ก่อนที่จะสร้างโฟลเดอร์ คุณสามารถย้ายไปยังโฟลเดอร์ได้ เป็นต้น


และหลังจากฟังก์ชันนี้คุณสามารถสร้างโฟลเดอร์ได้ หากระบุเส้นทางไปยังโฟลเดอร์เป็น "2/3" โดยไม่มีเครื่องหมายทับนำหน้า โฟลเดอร์จะถูกสร้างขึ้นโดยสัมพันธ์กับโฟลเดอร์ที่เราอยู่ในปัจจุบัน นั่นคือโฟลเดอร์ "1/2/3" จะถูกสร้างขึ้น


หากคุณระบุเครื่องหมายทับนำหน้า (/1/2/3) เมื่อสร้างโฟลเดอร์ โฟลเดอร์นั้นจะถูกสร้างขึ้นจากรูท FTP ไม่ว่าคุณจะย้ายไปยังโฟลเดอร์ใดก็ตาม

ความคิดเห็น

10/14/2552 เซอร์เกย์
ทุกสิ่งที่ชาญฉลาดนั้นเรียบง่าย :)

12.12.2009 วิคเตอร์
ขอบคุณทุกอย่างใช้งานได้ แต่ในไคลเอนต์ ftp โฟลเดอร์ที่สร้างขึ้นจะไม่ปรากฏให้เห็นในทันที คุณต้องรีสตาร์ทใหม่นั่นคือ อย่าเพิ่งตัดการเชื่อมต่อจากเซิร์ฟเวอร์แล้วเชื่อมต่ออีกครั้ง แต่ให้ปิดโปรแกรมแล้วรันใหม่อีกครั้ง (ฉันใช้ FileZilla Client)

12/14/2009 ผู้ดูแลระบบ
ฉันคิดว่าไฟล์แคชและโฟลเดอร์ไคลเอนต์ FTP ทั้งหมด ตัวอย่างเช่น ใน Total Commander จะมีปุ่ม "อัปเดต" พิเศษสำหรับเรื่องดังกล่าว น่าเสียดายที่ FileZilla ไม่มีสิ่งนี้

24/01/2010 อเล็กซานเดอร์
ทำไม FileZilla ถึงไม่มีแบบนั้น ฉันมีเวอร์ชัน 3.2.2 แล้ว มันอายุประมาณหนึ่งปีแล้วและมีฟังก์ชันแบบนี้ และเท่าที่ฉันจำได้มันก็เป็นมาตลอด!!!

27/08/2010 วิทาลี
โฟลเดอร์ถูกสร้างขึ้นโดยมี 755 ทางด้านขวา แต่คุณต้องมี 777
ในขั้นตอนการสร้าง เป็นไปได้ไหมที่จะกำหนดค่าสิทธิ์ที่จะสร้างโฟลเดอร์ผ่าน FTP

27/08/2010 ผู้ดูแลระบบ
Vitaly มีฟังก์ชั่นสำหรับสิ่งนี้
ftp_chmod($conn_id, 0777, $ไฟล์)
หลังจากสร้างโฟลเดอร์หรือไฟล์แล้วให้ใช้งาน

28/08/2010 วิทาลี
ขอบคุณผู้ดูแลระบบ!

12/09/2010 อันเดรย์
ขอโทษนะ ทำไมฉันไม่สร้างไดเร็กทอรีหลาย ๆ อัน นั่นก็คือ:

06/12/2011 อิลยา
มีบางอย่างไม่เป็นไปด้วยดี ปัญหาเซิร์ฟเวอร์:
คำเตือน: ftp_close() คาดว่าพารามิเตอร์ 1 จะเป็นทรัพยากร โดยให้บูลีนใน /home/bos/p/h/p/phpscripts/public_html/formf.php ออนไลน์ 19

15/06/2011 วิกเตอร์
Ilya เขาเขียนว่าพารามิเตอร์แรกที่คุณส่งไปยังฟังก์ชัน ftp_close ไม่ถูกต้อง

29/06/2011 อเล็กซ์
ปัญหาเดียวกับอันเดรย์
(ไม่ได้สร้างหลายไดเรกทอรี)
ftp_mkdir ($conn_id, "1"); // นี่คือวิธีการทำงาน
แต่เช่นนี้ ftp_mkdir ($conn_id, "1/2/3"); // ใช้งานไม่ได้
???

27/07/2011 วิกเตอร์
ฉันตรวจสอบ Alexey แปลกแล้ว มันสร้างหลายโฟลเดอร์ให้ฉัน
บางทีโหมดยุ่งยากบางอย่างเปิดใช้งานอยู่บนเซิร์ฟเวอร์ จากนั้นคุณต้องสร้างโฟลเดอร์ทีละโฟลเดอร์ ขั้นแรกให้สร้างโฟลเดอร์ 1 จากนั้นป้อนและสร้างโฟลเดอร์ 2 ในนั้น จากนั้นป้อนโฟลเดอร์ 2 และสร้าง 3 ในนั้น...

11/07/2011 k1-801 (ดิมิทรีเป็นไปได้)
และการลบโฟลเดอร์เท่าที่ฉันเข้าใจผ่าน
rmdir_ftp($conn_id, $dir);
ดังนั้น?

และด้วยเหตุผลบางอย่าง มันไม่สร้างโฟลเดอร์ให้ฉัน (และไม่เขียนข้อผิดพลาด... แปลก...)

03/10/2012 ย
ขอบคุณ ไม่อย่างนั้นฉันก็ทรมานกับคำถามนี้
และคุณให้อภัยทุกสิ่งและสิ่งสำคัญคือมันได้ผล

29/05/2555 มิคาอิล
แน่นอนฉันขอโทษ จะเขียนโค้ดนี้ตรงไหน ไม่งั้นไม่เก่งเลย แต่ต้องสร้างโฟลเดอร์จริงๆ))

07/04/2012 โนแมค
มีบางอย่างผิดปกติกับฉัน... ในครั้งแรกที่โค้ดข้าม ครั้งที่สองที่แจ้งว่ามีโฟลเดอร์ดังกล่าวอยู่แล้ว... ดูเหมือนว่ากำลังถูกสร้างขึ้น แต่จะไม่สามารถมองเห็นได้แม้ว่าจะรีสตาร์ท FTP((((
และฉันต้องสร้างโฟลเดอร์ที่ไม่ได้อยู่ในโฟลเดอร์เดียวกับที่มีไฟล์ PHP อยู่ แต่ย้อนกลับไปหนึ่งขั้นตอน จากนั้นป้อนโฟลเดอร์อื่นและสร้างมันขึ้นมาที่นั่น.. บางอย่างเช่นนี้:
../folder1/โฟลเดอร์ใหม่ที่นี่
โปรดช่วยถ้าไม่ยาก) ขอบคุณ)

07/04/2012 โนแมค
ฉันรู้วิธี))) ขอบคุณโดยทั่วไปสำหรับบทความมันหายากที่ใครจะอธิบายได้อย่างถูกต้องว่าเป็นอย่างไร)))

27/01/2013 CiliZ
ทำได้ดีมาก นับถือบทความเลย

06/05/2013 วาซิลี
โฟลเดอร์องค์กรเป็นองค์ประกอบหลักของเอกลักษณ์องค์กรของบริษัท เป็นผลิตภัณฑ์สำหรับติดเอกสารและวัสดุกระดาษจำนวนเล็กน้อย โฟลเดอร์ถูกใช้ทั้งภายในบริษัท เพื่อจัดเก็บและเคลื่อนย้ายเอกสาร และเพื่อการโฆษณา รายละเอียดเพิ่มเติมบนเว็บไซต์: www.logodesigner.ru/papki