2016-09-27 22 views
-1

ファイルを特定のフォルダに保存する簡単なPHPがあります。私はすでに777で許可を変更していますが、エラーが発生しています:file_put_contentsを使用してフォルダにファイルを保存するPHP

Warning: file_put_contents(/var/www/html/foldername/): failed to open stream: Is a directory on line 22 
Warning: chmod(): Operation not permitted on line 23 

これを修正するにはどうしたらいいですか?

PHP

$file_name = ''; 
$file_binary = ''; 

$folder = "foldername"; 
$file_name = isset($_POST['file_name']) ? $_POST['file_name'] : ''; 
$file_binary = isset($_POST['file']) ? $_POST['file'] : ''; 
$file_directory = "/var/www/html/foldername/".$file_name; 
file_put_contents($file_directory,str_replace("\\","",$file_binary)); 
chmod($file_directory,0777); 
+2

はあなたが有効なパスであることを確認し、 '" /パス/フォルダ名/".$ file_name'ますか、これを試してみてください絶対に777への許可を設定しないでください。644はファイルには十分であり、フォルダに対しては755で十分です。 – Gaurav

+0

@ Gaurav、私はすでにファイルパスを変更しています。 – User014019

+0

[PHP - ストリームを開くことに失敗しました:そのようなファイルやディレクトリはありません](http://stackoverflow.com/questions/36577020/php-failed-to-open-stream-no-such-file-or-directory) ) –

答えて

0

ファイルアップロードがある場合は、あなたがいない$ _POSTと$ _fileとのデータを、取得する必要があります。コードを変更してみてください。

+0

私はすでにそれを試みました。しかし私は同じ 'Error'を得た – User014019

0

あなたのコードには修正が必要なことはほとんどないと思います。最初に、あなたの三元演算子にデフォルトのファイル名を追加してください。file_put_contentの代わりにfopen'r+'を使用してください。urlをチェックしてください。ファイルを作成する前に、ディレクトリをチェックする必要があり書き込み可能です。これがあなたを助けることを願っています。

+0

ディレクトリが書き込み可能である、私はフォルダの許可を二重にチェックした。 – User014019

+0

コードをチェックすれば、いつかphpユーザーが違っていて、別のユーザーからチェックしているようなことが起こるかもしれません。 –

+0

私は既にfopenを使用していますが、 'file_put_contents'でも同じエラーが発生しています – User014019

0

$file_name = ''; 
$file_binary = ''; 

$folder = "foldername"; 
$file_name = isset($_POST['file_name']) ? $_POST['file_name'] : ''; 
$file_binary = isset($_POST['file']) ? $_POST['file'] : ''; 
//to create directory: 

$folderPath = "/var/www/html/foldername"; 

is_dir($folderPath) || @mkdir($folderPath) || die("Can't Create folder"); 

$file_directory = "/var/www/html/foldername/".$file_name; 
file_put_contents($file_directory,str_replace("\\","",$file_binary)); 
chmod($file_directory,0777); 
+0

' file_put_contents'で同じエラーが発生しました – User014019

+0

$ file_nameがヌルであることを確認してください。 –

+0

'$ file_name'をエコーし​​ようとしましたが、 – User014019

関連する問題