使用file_put_contents将文件保存到文件夹中PHP
我有一个简单的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);
我认为在你的代码中需要完成很少的更正。首先请添加默认的文件名到您的三元运算符,而不是使用file_put_content
使用fopen
与'r+'
一起请检查url更多的选项,creting文件之前需要检查目录存在并且是可写的。希望这会帮助你。
目录是可写的,我再次检查文件夹的权限。 – User014019
通过代码检查它可能发生的某个时候,像php用户是不同的,我们正在检查从另一个用户。 –
我已经使用fopen了,但是我仍然在'file_put_contents'中得到同样的错误 – User014019
试试这个,
$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);
'file_put_contents'中的同样错误 – User014019
请检查$ file_name是否为 –
我试图回显'$ file_name',并且我得到一个空白 – User014019
确定,'“/路径/文件夹名/".$ file_name'是一个有效的路径?永远不要将权限设置为777,644对于文件和对于文件夹是足够的。 – Gaurav
@Gaurav,我已经改变了文件路径。 – User014019
可能重复的[PHP - 无法打开流:没有这样的文件或目录](http://stackoverflow.com/questions/36577020/php-failed-to-open-stream-no-such-file-or- directory ) –