如何通过php上传文件?

时间:2015-07-22 11:02:39

标签: php html

我尝试在php中创建一个简单的文件上传器,但我在开始时已经失败了。

这是教程:

https://www.youtube.com/watch?v=PRCobMXhnyw

所以在开始时我应该创建一个文件 index.html

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>File upload</title>
    </head>
    <body>
        <from action="upload.php" method="post" enctype="multipart/form-data">
            <input type="file" name="file">
            <input type="submit" value="upload">
        </form>
    </body>
</html>

upload.php:

<?php
if(isset($_FILES['file'])) {
    $file = $_FILES['file'];
    print_r($file);
}

当我上传文件时,我应该在屏幕上看到:

Array ([name] => uploadme.txt [type/plain [tmp_name] => 
/Applications/MAMP/tmp/php/phpXkZIVD [error] => 0 [size] => 9)

但它不起作用。如果我点击“上传”,就没有任何事情发生。我做错了什么?

1 个答案:

答案 0 :(得分:2)

错误:

您在<form

中输了错字

<from action="upload.php" method="post" enctype="multipart/form-data">

应该是

<form action="upload.php" method="post" enctype="multipart/form-data">

它阻止您提交表单

你应该做什么:

您只是打印上传的文件,但是您应该将其移动到这样的文件夹中。

$target_file = 'upload/'.basename($_FILES["file"]["name"]);
move_uploaded_file($_FILES["file"]["tmp_name"], $target_file);

注意:

您应该创建一个名为upload的文件夹,并且该文件夹应具有读/写权限。

所以,你的代码看起来应该是这样的

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>File upload</title>
    </head>
    <body>
        <form action="upload.php" method="post" enctype="multipart/form-data">
            <input type="file" name="file">
            <input type="submit" value="upload">
        </form>
    </body>
</html>
<?php
if(isset($_FILES['file'])) {
    $file = $_FILES['file'];
    print_r($file);
    $target_file = 'upload/'.basename($_FILES["file"]["name"]);
    move_uploaded_file($_FILES["file"]["tmp_name"], $target_file);
}
?>