PHP 基本上传文件脚本
PHP basic upload file script
这是我第一次尝试通过 PHP 上传文件。
这是我的 HTML:
<form role="form" action="api/upload.php" id="uploadForm" method="post" enctype="multipart/form-data">
<input id="fileToUpload" name="fileToUpload" type="file" class="file" />
<button type="submit" name="submit" id="submit">Upload</button>
</form>
现在这里是参考 "api/upload.php" 中的 PHP 脚本:
<?php
$target_dir = "files\";
if(isset($_POST["submit"])) {
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
}
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
if ($uploadOk == 0) {
echo $uploadOk . "Sorry, your file was not uploaded.";
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["name"], $target_file)) {
echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
} else{
echo "Sorry, there was an error uploading your file.";
}
}
?>
这可能是一个逻辑错误。我不确定。无论如何,我不断收到消息:
Sorry, there was an error uploading your file
当我回显 $uploadOk 时,它仍然是 1。我如何找到我的错误?
使用$_FILES["fileToUpload"]["tmp_name"]
代替$_FILES["fileToUpload"]["name"]
应该是
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file);
备注:-
$_FILES["fileToUpload"]["name"]
只是上传文件的名称。 $_FILES["fileToUpload"]["tmp_name"]
是保存内容的临时文件。
希望这对您有所帮助。
[编辑 1]
我错误地向按钮添加了 value="submit"
属性。 name="submit"
属性足以进行 isset($_POST["submit"))
检查。
这是我第一次尝试通过 PHP 上传文件。
这是我的 HTML:
<form role="form" action="api/upload.php" id="uploadForm" method="post" enctype="multipart/form-data">
<input id="fileToUpload" name="fileToUpload" type="file" class="file" />
<button type="submit" name="submit" id="submit">Upload</button>
</form>
现在这里是参考 "api/upload.php" 中的 PHP 脚本:
<?php
$target_dir = "files\";
if(isset($_POST["submit"])) {
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
}
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
if ($uploadOk == 0) {
echo $uploadOk . "Sorry, your file was not uploaded.";
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["name"], $target_file)) {
echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
} else{
echo "Sorry, there was an error uploading your file.";
}
}
?>
这可能是一个逻辑错误。我不确定。无论如何,我不断收到消息:
Sorry, there was an error uploading your file
当我回显 $uploadOk 时,它仍然是 1。我如何找到我的错误?
使用$_FILES["fileToUpload"]["tmp_name"]
代替$_FILES["fileToUpload"]["name"]
应该是
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file);
备注:-
$_FILES["fileToUpload"]["name"]
只是上传文件的名称。 $_FILES["fileToUpload"]["tmp_name"]
是保存内容的临时文件。
希望这对您有所帮助。
[编辑 1]
我错误地向按钮添加了 value="submit"
属性。 name="submit"
属性足以进行 isset($_POST["submit"))
检查。