检索上载文件时的权限错误

时间:2014-06-26 14:38:49

标签: php iis file-upload iis-7 file-permissions

我在我的localhost上的IIS 7上运行php以进行测试。用户可以将简历作为作业应用程序的一部分上载。 php接收文件并将其上传到uploads目录。

之后,雇主可以登录公司门户网站并查看所有当前的应用程序。他们可以点击查看简历来下载简历的副本。我已将uploads文件夹设置为向IUSR和IIS_IUSR授予完全权限。

对于此文件夹中的现有简历,正确传递权限,雇主可以下载这些文件的副本。但是,当上载新文件时,权限不会传递给此文件,并且在尝试下载时雇主会遇到错误。

使用此代码,我可以下载更改文件夹权限之前存在的简历,但是我遇到了

HTTP错误401.3 - 未经授权 由于Web服务器上此资源的访问控制列表(ACL)配置或加密设置,您无权查看此目录或页面。

当我尝试下载新上传的文件时。

上传代码:

    $name = sprintf('uploads/%s.%s',
        sha1_file($_FILES['file-0']['tmp_name']),
        $ext
    );
    if (!move_uploaded_file(
        $_FILES['file-0']['tmp_name'], $name
    )) {
        throw new RuntimeException('Failed to move uploaded file.');
    }

下载代码

echo "<h3><a href='" . $resume . "' class='linkText'>Link to resume</a></h3>";

如何修改设置以将权限传递给新上传的文件?

1 个答案:

答案 0 :(得分:0)

最后我改变了输出下载链接的方式。而不是将其作为我使用readfile

文件的直接链接
header('Content-Description: File Transfer');
header('Content-Type: ' . $array['filetype']);
header('Content-Disposition: attachment; filename='.basename($resume));
readfile($resume);

出于某种原因,这种方法很好,并且没有关于权限的错误。

相关问题