【发布时间】:2021-07-07 05:53:01
【问题描述】:
这是我的代码:
<?php
include ('navbar.php');
?>
<form class = "container m-5" method = "POST" action = "upload.php" encytype = "multipart/form-data">
<input class = "form-control w-25" type = "file" name = "file">
<button class = "btn" type = "submit" name = "Upload">Upload</button>
</form>
<?php
include'connect.php';
$statusMsg = '';
// File upload path
$targetDir = "image";
$fileName = $_FILES["file"]["name"];
$targetFilePath = $targetDir . $fileName;
$fileType = pathinfo($targetFilePath,PATHINFO_EXTENSION);
if(isset($_POST["submit"]) && !empty($_FILES["file"]["name"])){
// Allow certain file formats
$allowTypes = array('jpg','png','jpeg','pdf');
if(in_array($fileType, $allowTypes)){
// Upload file to server
if(move_uploaded_file($_FILES["file"]["tmp_name"], $targetFilePath)){
// Insert image file name into database
$insert = $db->query("INSERT into userid (FileName) VALUES ('".$fileName."'");
if($insert){
$statusMsg = "The file ".$fileName. " has been uploaded successfully.";
}else{
$statusMsg = "File upload failed, please try again.";
}
}else{
$statusMsg = "Sorry, there was an error uploading your file.";
}
}else{
$statusMsg = 'Sorry, only JPG, JPEG, PNG, GIF, & PDF files are allowed to upload.';
}
}else{
$statusMsg = 'Please select a file to upload.';
}
// Display status message
echo $statusMsg;
?>
我收到的唯一消息是这个
注意:未定义索引:C:\xampp\htdocs\Project\upload.php 中的文件 第 15 行请选择要上传的文件。
我的数据库中什么也没有显示
【问题讨论】:
-
您在检查
$fileName = $_FILES["file"]["name"];是否存在之前获取它。只需将这些行移到您的if(isset($_POST["submit"]) && !empty($_FILES["file"]["name"]))中即可。并将isset($_POST["submit"])更改为isset($_POST["Upload"])(这是提交按钮的名称) -
@MagnusEriksson 很好地抓住了提交按钮的名称,甚至没看到。