php$\u文件错误代码返回意外错误

php$\u文件错误代码返回意外错误,php,Php,我有一些代码,允许用户一次上传多个文件。上传后,它从未到达某个特定点,所以我输入了一个echo来测试错误代码的值,它返回了一个我不确定是否理解的值。代码如下: $tmpTarget = PCBUG_UPLOADPATH; foreach ($_FILES["attachments"]["error"] as $key => $error) { if ($error == UPLOAD_ERR_OK) { $tmp_name = $_FI

我有一些代码,允许用户一次上传多个文件。上传后,它从未到达某个特定点,所以我输入了一个echo来测试错误代码的值,它返回了一个我不确定是否理解的值。代码如下:

    $tmpTarget = PCBUG_UPLOADPATH;
    foreach ($_FILES["attachments"]["error"] as $key => $error) {
       if ($error == UPLOAD_ERR_OK) {
            $tmp_name = $_FILES["attachments"]["tmp_name"][$key];
            $name = str_replace(" ", "_", $_FILES["attachments"]["name"][$key]);
            move_uploaded_file($tmp_name, "$tmpTarget/$name");
            @unlink($_FILES["attachments"]["tmp_name"][$key]);
        }
        else {
            $errorFlag = true;
            echo "error = $error";
            exit;
        }
    }
创建附件字段的代码如下所示:

for($i=1; $i<=$max_no_img; $i++){
    echo "<input type=file name='attachments[]' class='bginput'><br />";
}
<form accept-charset="utf-8" enctype="multipart/form-data" method="post" action="dest.php">

for($i=1;$i当浏览器不发送文件时,以及当PHP将发送文件的文件名解释为空字符串时,会发生此错误(请参阅)

尝试在窗体上强制使用字符集,如下所示:

for($i=1; $i<=$max_no_img; $i++){
    echo "<input type=file name='attachments[]' class='bginput'><br />";
}
<form accept-charset="utf-8" enctype="multipart/form-data" method="post" action="dest.php">

谢谢。我添加了accept字符集,并在所有三大浏览器(firefox、ie8、chrome)中进行了尝试。在所有浏览器中仍然会出现错误。我从未使用过Wireshark之类的东西,但只是下载了它,然后看看我是否能找到如何使用它并发布结果。我假设我想发布HTTP post结果?@emmy。是的,就是这样。如果文件很大,只发布MIME头,例如:--------------MV9ObR7y7KD9eZvr93dXZX内容-处置:表单数据;name=“附件[]”;filename=“filename.txt”内容类型:文本/plain@EmmyS也许你最好尝试使用小文件并发布整个HTTP请求。这样我可以尝试重现问题。我正在测试的所有文件都很小。我仍在试图在Wireshark中找到我需要的数据-那里有太多东西了!@EmmyS你可以只显示HTTP流量。还要确保你嗅探到了在短时间内。您正在混合HTML和XHTML;您的输入未关闭,
,而您的br已关闭

-选择一个或另一个;不要混合。如果您选择坚持使用XHTML,则
type=file
也将需要引号。@Richard,我从教程中复制了一些代码,并不太过谨慎我对这样的事情很不满。我只是想让文件上传工作正常。我会回去让一切保持一致。