文件无法使用PHP上传

时间:2014-03-17 12:08:12

标签: php file-upload

尝试上传文件时遇到问题。我在localhost和托管服务器上都试过了。有什么奇怪的是我在$_FILES['fichero']['error']中得到错误代码0,但无论如何文件永远不存在。我检查了临时目录的权限,他们是对的。我还查看了is_uploaded_file,我得到了肯定的回答。

这是我在PHP中使用的代码和同一文件中的表单。

<?php

    if(isset($_POST['submit'])) {
        echo '<p>File uploaded.</p>';
        if ($_FILES['fichero']['error'] == 0 && is_uploaded_file($_FILES['fichero']['tmp_name'])) {
            echo '<p>Successful upload.</p>';
            echo '<p>File is temporarily in: ' . $_FILES['fichero']['tmp_name'] . '</p>';
        } else {
            echo '<p>Problem with file upload.</p>';
        }
    }
?>

<form enctype="multipart/form-data" method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
        <p>Name: </p>
        <input type="text" name="name" value="name">
        <p>File: </p>
        <input type="hidden" name="MAX_FILE_SIZE" value="3276800">
        <input type="file" name="fichero">
        <input type="submit" name="submit" value="submit">
</form>

我将不胜感激任何帮助。提前谢谢!

1 个答案:

答案 0 :(得分:0)

您应该使用move_uploaded_file将文件上传到服务器中的某个位置。您还可以按尺寸,类型等限制上传。有关详细信息,请查看http://in1.php.net/manual/en/function.move-uploaded-file.php。 is_uploaded_file仅检查文件是否使用HTTPPOST方法上载(意味着它不上传文件)。

<?php

    if(isset($_POST['submit'])) {
        echo '<p>File uploaded.</p>';
        $fileName = $_FILES["fichero"]["name"]; 
        $fileTmploc = $_FILES["fichero"]["tmp_name"];
        $filePath = "upload/".$fileName;
        if(move_uploaded_file($fileTmploc, $pathAndName)==TRUE){
            echo "Upload Successful";
        } else {
            echo "Upload Failed";
        }
    }
    ?>

请在您的应用程序根目录中创建上传文件夹,并提供必要的写入权限。