为什么在服务器上php里执行file_put_contents创建文件回到是false呢,文件目录已经设置为777的权限了,不解

WBOY
풀어 주다: 2016-06-13 11:50:42
원래의
903명이 탐색했습니다.

为什么在服务器上php里执行file_put_contents创建文件返回是false呢,文件目录已经设置为777的权限了,不解
想用file_get_contents读取网络上的图片文件并由file_put_contesnts写入到服务器本地,file_get_contesnts执行没问题,可以读取信息,然后将读出的数据$data执行:
var_dump(file_put_contents($local_file_position, $data));在测试中会显示var_dump出的信息,但最后file_put_contents返回是false,不知道为什么,在网上搜说是aparche没有写权限,是这样的吗?如果是,如何设置呢?

环境:CentOS 6.5 + MySQL5.5.35 + tomcat7.0.47

------解决方案--------------------
用的是绝对路径还是相对路径?
------解决方案--------------------
先确认file_get_contents()获取的数据是否存在,数据类型是否合法。
------解决方案--------------------
估计是权限不够
echo substr(sprintf('%o', fileperms('你的目录')), -4); //看看是什么结果
------解决方案--------------------

引用:
绝对路径和相对路径是一样的

要求能写入的话 文件所在的目录也是需要有写的权限的
比如 /home/centos/123.txt
目录home、centos也都是需要写的权限的不只是单单123.txt需要写权限
------解决方案--------------------
file_put_contents 失败时会有明确的错误信息输出
请贴出
------解决方案--------------------
提示很清楚了,
Permission denied 
拒绝访问
------解决方案--------------------
你是要把文件写到 /usr/local/www/wxtest/txt 目录中
请检查目录存在且可写
------解决方案--------------------
1. 755权限指的是 rwxr-xr-x, 同组和其他用户是没有写权限的。 777才是全部用户拥有所有权限。

2. 建议使用绝对路径,写文件前在脚本内判断路径是否存在,不存在则先创建路径(目录)再写文件,这个是血淋淋的教训。
------解决方案--------------------
把/usr/local/www/wxtest/txt设成777
------解决方案--------------------
确定是对组外用户的权限是777?
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿