Saya mengalami beberapa kasus dengan pemasangan WordPress dengan Bluehost di mana saya mengalami kesalahan dengan tema WordPress saya karena folder unggahan wp-content/uploads
tidak ada.
Tampaknya installer WordPress Bluehost cPanel tidak membuat folder ini, meskipun HostGator melakukannya.
Jadi saya perlu menambahkan kode ke tema saya yang memeriksa folder dan membuatnya sebaliknya.
if (!file_exists('path/to/directory')) { mkdir('path/to/directory', 0777, true); }
Jawaban:
Coba ini, menggunakan mkdir :
Perhatikan bahwa
0777
sudah merupakan mode default untuk direktori dan masih dapat dimodifikasi oleh umask saat ini.sumber
file_exists
- Memeriksa apakah file atau direktori adais_file
- Memberitahu apakah nama file adalah file biasais_dir
- Memberitahu apakah nama file adalah direktoriIni bagian yang hilang. Anda perlu memberikan flag 'rekursif' sebagai argumen ketiga (boolean true) di mkdir seperti ini:
sumber
true
Sesuatu yang lebih universal karena ini muncul di google. Meskipun detailnya lebih spesifik, judul pertanyaan ini lebih universal.
Ini akan mengambil jalur, mungkin dengan rantai panjang direktori yang tidak dibuat, dan terus naik satu direktori hingga sampai ke direktori yang ada. Kemudian akan mencoba untuk membuat direktori berikutnya di direktori itu, dan melanjutkan sampai itu membuat semua direktori. Mengembalikan nilai true jika berhasil.
Dapat ditingkatkan dengan memberikan level berhenti sehingga hanya gagal jika melampaui folder pengguna atau sesuatu dan dengan memasukkan izin.
sumber
Bagaimana dengan fungsi pembantu seperti ini:
Ini akan kembali
true
jika direktori berhasil dibuat atau sudah ada, danfalse
jika direktori tidak dapat dibuat.Alternatif yang lebih baik adalah ini (tidak boleh memberi peringatan):
sumber
@
dan menggantinya denganis_dir
cek yang tepat , upvote saya adalah milik Anda :) Poin bonus untuk memeriksa apakah direktori indukis_writable()
untuk fungsi pembantu kedap air.Cara lebih cepat untuk membuat folder:
sumber
Secara rekursif membuat jalur direktori:
Terinspirasi oleh Python
os.makedirs()
sumber
Di dalam WordPress ada juga fungsi wp_mkdir_p yang sangat berguna yang secara rekursif akan membuat struktur direktori.
Sumber untuk referensi: -
sumber
Saya memerlukan hal yang sama untuk situs masuk. Saya perlu membuat direktori dengan dua variabel. Direktori $ adalah folder utama tempat saya ingin membuat sub-folder lain dengan nomor lisensi pengguna.
sumber
Ini adalah solusi paling mutakhir tanpa penindasan kesalahan:
sumber
Jika Anda ingin menghindari masalah
file_exists
VSis_dir
, saya sarankan Anda untuk melihat di siniSaya mencoba ini dan itu hanya membuat direktori jika direktori tidak ada . Tidak peduli ada file dengan nama itu.
sumber
sumber
Anda juga dapat mencoba:
sumber
Untuk membuat folder jika belum ada
Mempertimbangkan lingkungan pertanyaan.
Dan mengutip dari: http://php.net/manual/en/function.mkdir.php
Manual mengatakan bahwa satu-satunya parameter yang diperlukan adalah
$pathname
!jadi, Kita cukup kode:
Penjelasan:
Kami tidak harus melewati parameter apa pun atau memeriksa apakah folder ada atau bahkan melewati parameter mode kecuali diperlukan; karena alasan berikut:
mode
diabaikan pada Windows Hosting yang menjalankan PHP .mkdir
perintah build in checker jika folder ada; jadi kita perlu memeriksa kembali hanya Benar | Salah; dan itu bukan kesalahan, itu hanya peringatan, dan Peringatan dinonaktifkan di server hosting secara default.Ini hanyalah cara lain untuk melihat pertanyaan dan tidak mengklaim solusi yang lebih baik atau paling optimal.
Diuji pada PHP7, Server Produksi, Linux
sumber
sumber
Kita harus selalu memodernisasi kode kita dan saya telah menulis yang sama dengan memeriksanya di bawah ... Kita pertama-tama memeriksa direktori, jika direktori tidak ada, kita membuat direktori.
sumber
Pertama-tama Anda perlu memeriksa apakah direktori ada
file_exists('path_to_directory')
Kemudian gunakan
mkdir(path_to_directory)
untuk membuat direktoriLebih lanjut tentang mkdir () di sini
Kode lengkap di sini:
sumber
Ini dia
sumber
Jawaban yang diterima berfungsi tetapi itu bukan solusi yang tepat karena izin. 0777 izin memungkinkan semua orang untuk mengakses / membaca / menulis direktori. Ini bukan yang kita inginkan untuk direktori unggah di server web. Berikut ini adalah solusi yang tepat dan lengkap yang disarankan.
0644 adalah izin yang tepat untuk direktori unggahan karena kami biasanya tidak ingin unggah di server dieksekusi di sana.
true adalah parameter ketiga untuk menyetel properti rekursif ke true atau false. Ini memungkinkan pembuatan direktori bersarang yang ditentukan dalam pathname.
sumber