【发布时间】:2016-07-13 06:29:24
【问题描述】:
我正在使用在 localhost 中工作的 Apache 服务器。 我不懂 php,所以我尝试了 w3schools 网站上的代码,但我无法让它工作。
这是 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>
PHP 代码:
<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
echo $target_file;
$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;
}
}
?>
php代码开头的echo命令,只返回“uploads/”,所以我猜$_FILES不能正常工作。
EDIT2
这次我用 XAMPP 重新安装了 Apache,我对代码没有更多问题(它输出“文件是图像”),但我的“上传”文件夹中仍然没有上传文件。我的“上传”文件夹与本地主机中的网页位于同一文件夹中。
我正在使用默认的 php.ini (file_uploads = on)。 我尝试了来自不同目录的不同大小的不同文件,但到目前为止没有成功。
【问题讨论】:
-
您是否在您工作的同一目录中创建了
uploads文件夹? -
那你有什么问题?
-
我已经编辑了我的最后一句话:php代码开头的echo命令,只返回“uploads/”所以我猜$_FILES不能正常工作。
-
要调试,请运行
var_dump($_FILES)而不是echo $target_file。如果您想要比“修复代码”更多的解决方案,您还应该提供比“不起作用”更多的细节。 -
对不起,我的意思是应该显示文件名,但它是空的。我试过你的调试代码,它返回 array(0) { }