【问题标题】:PHP change write permissionsPHP更改写权限
【发布时间】:2013-04-28 07:18:16
【问题描述】:

对不起,如果这是一个转贴,但我在用 PHP 将文件写入我的磁盘时遇到了一些困难。我正在尝试使用 HTML 表单上传文件,然后使用 PHP 文件将该文件下载到我的计算机,但我不断收到错误

Warning: fopen(temp/127.0.0.1): failed to open stream: Permission denied in C:\xampp\htdocs\VotingBox\processForm.php on line 30

我已经尝试chmod 该目录以赋予自己写入权限,并且该目录是在 Windows 7 中的管理员配置文件下创建的,因此它应该具有文件写入功能,但我仍然遇到同样的错误。这是我编写文件的代码:

$ip=$_SERVER['REMOTE_ADDR']; 
if(is_dir("temp/".$ip) == false)
{
    mkdir("temp/".$ip, 0777);
}
chmod("temp/".$ip, 0777);
move_uploaded_file($candImgs[$i], "temp/".$ip);
$filename1 = "temp/".$ip; 
$fp1 = fopen($filename1, "r");
$contents1 = fread($fp1, filesize($filename1)); 
fclose($fp1); `

任何帮助将不胜感激。另外,如果有帮助的话,我正在使用 XAMPP 来托管我的文件。

【问题讨论】:

  • 您可能想了解 apache 在哪个用户下运行。用户可能没有权限。
  • 它在管理员配置文件下运行,因此它应该具有读/写权限。

标签: php apache


【解决方案1】:

我终于意识到问题出在我的 HTML 表单上,而不是 php 代码上。如果其他人有这个问题,这里是我最终代码的有用部分:

<form name="FORM_NAME" enctype="multipart/form-data" method='post' action="ACTION">

<input type="hidden" name="MAX_FILE_SIZE" value="170000" />

最后是我的 php 代码:

    move_uploaded_file($_FILES['fileName']['tmp_name'], $target_path);  
    $fp      = fopen($target_path, 'r');
    $data = fread($fp, filesize($target_path));
    fclose($fp);
    $encoded = chunk_split(base64_encode($data)); 

【讨论】:

    猜你喜欢
    • 2018-08-15
    • 1970-01-01
    • 1970-01-01
    • 2012-03-10
    • 2019-11-17
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    相关资源
    最近更新 更多