使用PHP将图片上传到文件夹

时间:2015-09-27 10:16:40

标签: php html file-upload

因此,我正在尝试按照本教程here进行操作,但我很难按照预期的方式使用它。所以我创建了一个名为fileToUpload的文件,在这个文件中我有四个文件。首先,php.ini使用以下代码:

file_uploads = On

其次,upload.html

<!DOCTYPE html>
<html>
<body>

<form action="upload.php" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload Image" name="submit">
</form>

</body>
</html>

第三,upload.php

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
        echo "File is an image - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "File is not an image.";
        $uploadOk = 0;
    }
}
?>

最后,我有一个名为uploads的文件夹,该文件夹中没有任何内容。我应该注意,upload.htmlupload.phpphp.ini都在名为fileToUpload的文件夹中。

现在,当我单击提交按钮时,它会显示upload.php内部的代码,uploads文件夹中没有任何内容。但是,它应该将上传的文件放入uploads文件夹中。但是,它无法正常工作。

2 个答案:

答案 0 :(得分:2)

您缺少将上传的文件放在该目录中的调用。一些事情(从您链接到的教程中无耻地复制):

if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
    echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
} else {
    echo "Sorry, there was an error uploading your file.";
}

答案 1 :(得分:1)

当您上传文件时,它不会直接转到您想要的位置,而是转到由服务器配置定义的临时文件夹。 然后,您必须将临时文件移动到您想要的位置。

move_uploaded_file ($_FILES["fileToUpload"]["tmp_name"] , $target_file );

AND php必须有权在目标文件夹上写