开发者

Permission Denied on move_uploaded_file to another server in IIS

开发者 https://www.devze.com 2023-02-05 04:16 出处:网络
I have a PHP web application running on IIS, which allows a user to upload a file from a simple html form. The uploaded file is then moved to a folder on another server. This is working correctly on A

I have a PHP web application running on IIS, which allows a user to upload a file from a simple html form. The uploaded file is then moved to a folder on another server. This is working correctly on Apache, but fails on IIS with the error:

function['move_uploaded_file']failed to open开发者_如何学Go stream: Permission denied in...

I've checked all the permissions on the directories. If I run a simple PHP script through the command line to copy a file from the server into the folder on the other server it works correctly, so I suspect the problem is with IIS.

 if (move_uploaded_file($_FILES ["file"] ["tmp_name"], "\\\\000.00.0.00\\tia\\web\\upload\\" .$_FILES["file"]["name"])) {


This has been covered already here. Quoting the reason here:

You have mapped target directory to a share such as \server2\files. These mappings are only available to the current users (eg, the admin account), not to the IUSR account that your php is probably running as (assuming IIS). Solution, don't use mappings, instead use the full 'unc' path name, ie '\server\share\folder\file.ext', also remember that the IUSR account will need access to these shares/folders/files


From what I can see in your comment, you are using a \\ prefixed network share as the target for your move_uploaded_file() operation.

I'll bet a beer that PHP isn't allowed to access that share. Remember, PHP runs with IIS's permissions!

Try saving to a local, globally writable path first. If that works, you know you have to fix the share's permissions.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号