PHP 文件上传到本地主机
PHP File upload to 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 命令,只有 returns "uploads/" 所以我猜 $_FILES 不能正常工作。
EDIT2
这次我用 XAMPP 重新安装了 Apache,我的代码没有问题(它输出 "File is an image")但是我的 "uploads" 文件夹中仍然没有上传文件.我的 "uploads" 文件夹与我在本地主机中的网页位于同一文件夹中。
我正在使用默认值 php.ini(file_uploads = 打开)。
我尝试了不同目录中不同大小的不同文件,但到目前为止没有成功。
已编辑
这应该可以正常工作。至于内容长度警告,您需要编辑 php.ini 文件。
php.ini
编辑这两行。
post_max_size = 200M
upload_max_filesize = 200M
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">
</form>
</body>
</html>
upload.php
<?php
if (!empty($_FILES) && isset($_FILES['fileToUpload'])) {
switch ($_FILES['fileToUpload']["error"]) {
case UPLOAD_ERR_OK:
$target = "upload/";
$target = $target . basename($_FILES['fileToUpload']['name']);
if (move_uploaded_file($_FILES['fileToUpload']['tmp_name'], $target)) {
$status = "The file " . basename($_FILES['fileToUpload']['name']) . " has been uploaded";
$imageFileType = pathinfo($target, PATHINFO_EXTENSION);
$check = getimagesize($target);
if ($check !== false) {
echo "File is an image - " . $check["mime"] . ".<br>";
$uploadOk = 1;
} else {
echo "File is not an image.<br>";
$uploadOk = 0;
}
} else {
$status = "Sorry, there was a problem uploading your file.";
}
break;
}
echo "Status: {$status}<br/>\n";
}
您的代码运行良好。
我刚查过
uploads/untitled.pngFile is an image - image/png.
所以你可能还漏掉了其他东西。
提供您正在使用的文件列表及其完整代码
我正在使用在本地主机上运行的 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 命令,只有 returns "uploads/" 所以我猜 $_FILES 不能正常工作。
EDIT2
这次我用 XAMPP 重新安装了 Apache,我的代码没有问题(它输出 "File is an image")但是我的 "uploads" 文件夹中仍然没有上传文件.我的 "uploads" 文件夹与我在本地主机中的网页位于同一文件夹中。
我正在使用默认值 php.ini(file_uploads = 打开)。 我尝试了不同目录中不同大小的不同文件,但到目前为止没有成功。
已编辑
这应该可以正常工作。至于内容长度警告,您需要编辑 php.ini 文件。
php.ini
编辑这两行。
post_max_size = 200M
upload_max_filesize = 200M
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">
</form>
</body>
</html>
upload.php
<?php
if (!empty($_FILES) && isset($_FILES['fileToUpload'])) {
switch ($_FILES['fileToUpload']["error"]) {
case UPLOAD_ERR_OK:
$target = "upload/";
$target = $target . basename($_FILES['fileToUpload']['name']);
if (move_uploaded_file($_FILES['fileToUpload']['tmp_name'], $target)) {
$status = "The file " . basename($_FILES['fileToUpload']['name']) . " has been uploaded";
$imageFileType = pathinfo($target, PATHINFO_EXTENSION);
$check = getimagesize($target);
if ($check !== false) {
echo "File is an image - " . $check["mime"] . ".<br>";
$uploadOk = 1;
} else {
echo "File is not an image.<br>";
$uploadOk = 0;
}
} else {
$status = "Sorry, there was a problem uploading your file.";
}
break;
}
echo "Status: {$status}<br/>\n";
}
您的代码运行良好。 我刚查过
uploads/untitled.pngFile is an image - image/png.
所以你可能还漏掉了其他东西。
提供您正在使用的文件列表及其完整代码