1

我正在尝试测试一个简单的文件上传脚本,但它失败了。这是html部分。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title="testing"></title>
</head>

<body>
    <form enctype="multipart/form-data" action="uploader.php" method="POST">
    <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
    Choose a file to upload: <input type="file" name="uploaded"/>
    <input type="submit" value="Upload File"/>
    </form>
</body>

下面是 php 部分。

<?php
$target = "upload/";
$target = $target . basename( $_FILES['uploaded']['name']) ;
$ok=1;

if ($uploaded_size > 350000)
{
    echo "Your file is too large.<br>";
    $ok=0;
}

if ($uploaded_type =="text/php")
{
     echo "No PHP files<br>";
     $ok=0;
}

if ($ok==0)
{
    Echo "Sorry your file was not uploaded";
}

else
{
    if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))
    {
            echo "The file ". basename( $_FILES['uploadedfile']['name']). " has   been             uploaded";
    }
    else
     {
            echo "Sorry, there was a problem uploading your file.";
     }
 }
 ?>

它在这一行失败:

if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))

并执行 else 部分:“对不起,上传您的文件时出现问题。” 我怎样才能让它工作而不会失败。谢谢你的帮助。

4

2 回答 2

0

您可以使用 is_writable( PATH_OF_FOLDER ) 测试权限

我也倾向于使用 is_file( PATH_OF_NEW_FILE ) 测试文件的存在

在确认上传成功之前!

于 2013-06-13T11:36:35.463 回答
0

最可能的原因是缺乏对目标目录的写访问权限。

另外,我会检查是否$target正确解析,因为文件名中可能存在似乎直接传递给脚本且未被过滤的工件。

于 2013-06-13T11:34:05.390 回答