为了测试目的,我在本地主机上的IIS 7上运行php。用户可以上传简历作为职务申请的一部分。php接收文件并将其上载到上载目录。
稍后,雇主可以登录公司网站并查看所有当前应用程序。他们可以点击查看简历下载简历的副本。我已经将上传文件夹设置为向IUSR和IIS_IUSR授予完全权限。
对于此文件夹中的现有简历,权限将正确传递,雇主可以下载这些文件的副本。但是,当上载新文件时,权限不会传递给该文件,雇主在尝试下载该文件时会遇到错误。
使用这段代码,我可以下载在更改文件夹权限之前存在的简历,但是我遇到了一个
HTTP 401.3 -未经授权,您没有权限查看此目录或页面,因为访问控制列表(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>";如何修改我的设置以将权限传递给新上传的文件?
发布于 2014-06-27 14:42:30
最后,我改变了输出下载链接的方式。而不是让它直接链接到我使用的readfile文件
header('Content-Description: File Transfer');
header('Content-Type: ' . $array['filetype']);
header('Content-Disposition: attachment; filename='.basename($resume));
readfile($resume);由于某些原因,这是很好的,并且没有关于权限的错误。
https://stackoverflow.com/questions/24433406
复制相似问题