引用
最近做文件上传功能,发现在Apache服务器,文件可以上传,但传到IIS服务器,功能就无法使用了。
测试后发现,用file_exists函数检测临时文件,在IIS下返回false。感觉跟上传后的临时文件夹的配置有关。
根据“内事问百度,外事问谷歌”的原则,纠结了一下这个问题是属于内事还是外事?
然后全搜了一下,得到如下原因:
IIS 环境下,如果在php.ini下没有配置 upload_tmp_dir 的路径,临时文件默认是存在机器上的临时文件夹内,比如 说:“C:\Windows\Temp”下,并且临时文件夹需要“WORKGROUP/users”的所有权限,而系统默认给“WORKGROUP /users”执行临时文件夹的权限,不同机器会不相同。
所以解决方法是:
在php.ini配置一下upload_tmp_dir(如:upload_tmp_dir = “D:\temp”);
或者找到系统默认的临时文件夹,给予“WORKGROUP/users”所有权限。
总结Temp目录的权限为:administator、system、users三者需具有完全控制权限。
测试后发现,用file_exists函数检测临时文件,在IIS下返回false。感觉跟上传后的临时文件夹的配置有关。
根据“内事问百度,外事问谷歌”的原则,纠结了一下这个问题是属于内事还是外事?
然后全搜了一下,得到如下原因:
IIS 环境下,如果在php.ini下没有配置 upload_tmp_dir 的路径,临时文件默认是存在机器上的临时文件夹内,比如 说:“C:\Windows\Temp”下,并且临时文件夹需要“WORKGROUP/users”的所有权限,而系统默认给“WORKGROUP /users”执行临时文件夹的权限,不同机器会不相同。
所以解决方法是:
在php.ini配置一下upload_tmp_dir(如:upload_tmp_dir = “D:\temp”);
或者找到系统默认的临时文件夹,给予“WORKGROUP/users”所有权限。
总结Temp目录的权限为:administator、system、users三者需具有完全控制权限。
fine