Mkdir ile bir klasör oluşturamazsınız

4 Cevap php

Environment info:
*Windows Vista
*PHP 5.2.9-2

Ben bir proje üzerinde çalışıyorum. Kullanıcının sadece "proje" adı diyelim. Kullanıcı etkileşimi içindir Benim php dosyaları bulunacaktır

Proje / file.php

Şimdi, ben bunun arkasında bir veritabanı ve genel dersleri ve yapılandırma dosyaları içeren bazı haritalar var. Ben onlar yüklemek olabilir görüntüleri saklamak hangi kullanıcılar için bir harita da vardır. Örneğin:

project/files/Users/0/profilePic.jpg

Sayısı veritabanında user_id tekabül eder.

Benim register.php dosyası bu kod satırını içerir:

mkdir('/files/Users/'.$id)

$id değişkeni büyük id veritabanında sayı, artı 1'dir.

Ama bu işe yaramayacak. Ben okuma ve yazma izinleri (benim makinede Admin am) var, hem klasörleri kontrol etti.

Ben yanlış ne yapıyorum?

Not: Bana yararlı bir cevap verebilir olanlar için bu ayrılmış düzenlemek için daha iyi bir yolu var bana hakkını. : P

4 Cevap

Ne bu konuda?

mkdir('c:/files/Users/'.$id)

Olanakları çift:

  1. Bu mutlak bir yol verir ve göreli bir yol yapmak arıyorsanız bu yana ilk / Lose - yani mkdir (. 'Dosyaları / Users /' $ id)
  2. Files / Kullanıcılar zaten (yani, vb kullanıcı 0, kullanıcı 1, zaten var) var mı? Eğer değilse, onları ilk yapmanız gerekir veya mkdir (true 'dosyaları / Users /'. $ Id, 077,) özyinelemeli dizinleri oluşturmak için yok.

Pencerelerde, bir yol '/' ile değil, bir sürücü harfi ile başlamaz. Sadece ilk çizgi (yani '/ files / users /' olur 'dosyalar / users /') çıkarın.

Dahası, ne dedi Mark.

PHP sistemleri arasındaki dönüştürme / en iyi girişimi yapar belirtiyor. : yaparak

mkdir('/files/users');

Bir * NIX sistemde olduğunu düşünerek içine PHP karıştı. C kök ayarlayarak:, şimdi düzgün bir parametreyi ayrıştırmak ve bir pencere sistemi olduğunu anlamak mümkün