因此,我正在尝试按照本教程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.html
,upload.php
和php.ini
都在名为fileToUpload
的文件夹中。
现在,当我单击提交按钮时,它会显示upload.php
内部的代码,uploads
文件夹中没有任何内容。但是,它应该将上传的文件放入uploads
文件夹中。但是,它无法正常工作。
答案 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必须有权在目标文件夹上写