上传后无法删除文件。 (move_uploaded_file)

时间:2014-03-17 03:29:43

标签: php html linux apache debian

问任何正在阅读此内容的人!

目前我有一个php页面,允许用户将文件上传到指定目录下的服务器。以下是我用来做的事情:

if(isset($_FILES['fileup']) && strlen($_FILES['fileup']['name']) > 1) {

chmod($uploadpath, 0777);

$uploadpath = $uploadpath . basename( $_FILES['fileup']['name']);       // gets the file name
$sepext = explode('.', strtolower($_FILES['fileup']['name']));
$type = end($sepext);       // gets extension
list($width, $height) = getimagesize($_FILES['fileup']['tmp_name']);     // gets image   width and height
$err = '';         // to store the errors


// If no errors, upload the image, else, output the errors
if($err == '') {
if(move_uploaded_file($_FILES['fileup']['tmp_name'], $uploadpath)) { 
chmod($uploadpath, 0777);

  echo '<br/><br/>File successfully uploaded:' .$uploadpath.'</b>';

}
else echo  '<b>Unable to upload the file.</b>';
}
else echo $err;
}

上传部分就像魅力一样,文件上传到服务器很好但是一旦上传,我就无法将文件删除为另一个用户。目前,上传文件的用户将是Apache用户&#34; www-data&#34;。

我确实认为该问题与我尝试使用的已上传文件的权限有关:

chmod($uploadpath,0777);

虽然这没有帮助..文件仍然无法删除。如果我使用&#34; rm -rf / directorypath&#34;我可以通过SSH删除它。但是如果我浏览它就无法删除它。

有什么建议吗?非常感谢任何帮助!

3 个答案:

答案 0 :(得分:3)

如果要删除文件,可以使用php unlink !如果那是一个目录,那么rmdir

答案 1 :(得分:0)

您可以使用取消关联(&#39; upload_folder /&#39;。$ image [&#39; file_name&#39;]);

答案 2 :(得分:0)

尝试允许您的图片文件夹的权限,而不仅仅是下面的文件。

chmod($upload_path, 0777);
行前

$uploadpath = $uploadpath . basename( $_FILES['fileup']['name']); 

请注意,777无论如何都不是超级安全的。最佳做法是使用组www-data

管理用户