2012-04-10 5 views
0

次のコードがありますが、フォルダを作成していないようです。PHPコントローラ経由でサーバーにファイルを作成する

の代わりにis_dirを使用する必要がありますか?

 $location = $_SERVER['DOCUMENT_ROOT'].'/_assets/quote/uploads/'; 

     $folderName = $this->quote->getCompanyDetails()->companyName; 
     $folderName = str_replace(" ", "_", $folderName); 
     $folderName = strtolower($folderName); 

     if(!file_exists($folderName)) 
     { 
      mkdir($location.$folderName, 0777); 

     }else{ 

答えて

2

使用

if (!file_exists($dir) && !is_dir($dir)) { 
    mkdir($location.$folderName, 0777); 
} 
+1

これは冗長です。ファイルが存在する場合、mkdirはそれを上書きしません。ディレクトリが存在する場合、is_dirはtrueを返します。したがって、あなたはそれらの1つを使うことができます。 – Corbin

+0

@corbin何をお勧めしますか? –

+0

@JessMcKenzie最終目標が何であるかによって異なります。ファイルを削除してその場所にディレクトリを作成したいですか?ディレクトリが存在しない場合にディレクトリを作成したいだけで、目的の名前のファイルが存在しないことがわかっている場合は、is_dirを使用します。本当にそれらはその状況で機能的に同等です。必要なディレクトリ名を持つファイルが実際に存在する可能性がある場合は重要です。 – Corbin

0

機能is_dir定義されたパスがフォルダである場合にのみ検出。フォルダを作成するための十分な権限がない可能性があります。実際にパスが書き込み可能かどうかを検出するには、

<?php 
if (is_writable($dir)) { 
echo "Path is writable"; 
} 
?> 

を検出してください。

+0

戻ってきます:) –

0

許可問題と思われます。 mkdirを使用しているディレクトリに書き込み権限があることを確認してください。

また、それが正しい場所で起こってチェックする

echo $location.$folderName ; 

を使用しています。

このヘルプが必要です。

関連する問題