Php 上载文件并访问$\u文件
我正试图上传某个目录上的文件。该目录记录在数据库中。但是,代码无法读取Php 上载文件并访问$\u文件,php,mysql,file-upload,Php,Mysql,File Upload,我正试图上传某个目录上的文件。该目录记录在数据库中。但是,代码无法读取$\u文件每次尝试上载文件时,我都会得到空值,。但其他输入数据则记录到数据库中,。发生的情况是我无法在数据库中记录文件名,它只是一个空白 if(isset($_POST['btn-upload'])){ $record_title = $_POST['record_title']; $record_recieved_date_time = $_POST['record_recieved_date_time']
$\u文件
每次尝试上载文件时,我都会得到空值,。但其他输入数据则记录到数据库中,。发生的情况是我无法在数据库中记录文件名,它只是一个空白
if(isset($_POST['btn-upload'])){
$record_title = $_POST['record_title'];
$record_recieved_date_time = $_POST['record_recieved_date_time'];
$record_checked_date_time = $_POST['record_checked_date_time'];
$record_approved_date_time = $_POST['record_approved_date_time'];
$record_status = $_POST['record_status'];
$record_remarks = $_POST['record_remarks'];
$record_type = $_POST['record_type'];
$file = $_FILES['file']['name'];
$sql = "INSERT INTO records (record_id , record_title , record_recieved_date_time , record_checked_date_time , record_approved_date_time , record_status ,record_remarks , file , record_type)
VALUES (NULL, '$record_title' , '$record_recieved_date_time','$record_checked_date_time','$record_approved_date_time' , '$record_status ' , '$record_remarks' , '$file' , '1')";
if (mysqli_query($dbconfig, $sql)) {
header('Location:memberAWP.php');
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($dbconfig);
}
}
if(isset($_POST['btn-upload']){
$record\u title=$\u POST['record\u title'];
$record_received_date_time=$_POST['record_received_date_time'];
$record\u checked\u date\u time=$\u POST['record\u checked\u date\u time'];
$record_approved_date_time=$_POST['record_approved_date_time'];
$record\u status=$\u POST['record\u status'];
$record_comments=$_POST['record_comments'];
$record\u type=$\u POST['record\u type'];
$file=$_文件['file']['name'];
$sql=“插入记录(记录id、记录标题、记录接收日期时间、记录检查日期时间、记录批准日期时间、记录状态、记录备注、文件、记录类型)
值(NULL、$record\u title’、$record\u Received\u date\u time’、$record\u checked\u date\u time’、$record\u approved\u date\u time’、$record\u status’、$record\u备注’、$file、'1');
if(mysqli_查询($dbconfig,$sql)){
标题('Location:memberAWP.php');
}否则{
echo“Error:”.$sql.
“.mysqli_Error($dbconfig);
}
}
这是表格,我在bootstrap的帮助下使用modal
<form method="post" action="" enctype="multipart/form-data name="loginform" class="form-horizontal">
<div class="form-group">
<label class="control-label col-sm-2" for="record_title"> TITLE </label>
<div class="col-sm-10">
<input type="text" class="form-control" id="record_title" name = "record_title" placeholder="Enter Title">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="record_recieved_date_time"> RECIEVED DATE / TIME </label>
<div class="col-sm-10">
<input type="datetime-local" class="form-control" id="record_recieved_date_time" name = "record_recieved_date_time" placeholder="Enter RECIEVED DATE / TIME">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="record_checked_date_time"> CHECKED DATE / TIME </label>
<div class="col-sm-10">
<input type="datetime-local" class="form-control" id="record_checked_date_time" name = "record_checked_date_time" placeholder="Enter CHECKED DATE / TIME">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="record_approved_date_time"> APPROVED DATE / TIME</label>
<div class="col-sm-10">
<input type="datetime-local" class="form-control" id="record_approved_date_time" name = "record_approved_date_time" placeholder="Enter APPROVED DATE / TIME">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="record_status"> STATUS </label>
<div class="col-sm-10">
<input type="text" class="form-control" id="record_status" name = "record_status" placeholder="Enter STATUS">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="record_remarks"> REMARKS </label>
<div class="col-sm-10">
<input type="text" class="form-control" id="record_remarks" name = "record_remarks" placeholder="Enter REMARKS">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="file"> ATTACHMENTS </label>
<div class="col-sm-10">
<input type="file" class="form-control" id="file" name="file" placeholder="Enter ATTACHMENTS">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" name="submit" value="submit" class="btn btn-default">Submit</button>
</div>
</div>
</form>
if(isset($\u POST['btn-upload'],$\u FILES['file'])){
/*
sql易受sql注入的影响,因为您直接在sql中嵌入变量
而不是使用“准备好的陈述”,所以在提供的陈述中应该格外小心
数据,可能使用:
过滤输入(输入帖子,'记录标题',过滤字符串);
*/
$record\u title=$\u POST['record\u title'];
$record_received_date_time=$_POST['record_received_date_time'];
$record\u checked\u date\u time=$\u POST['record\u checked\u date\u time'];
$record_approved_date_time=$_POST['record_approved_date_time'];
$record\u status=$\u POST['record\u status'];
$record_comments=$_POST['record_comments'];
$record\u type=$\u POST['record\u type'];
/*
为了简单起见,请将上载的文件作为对象访问
并使用值保存文件等
*/
$obj=(对象)$_文件['file'];
$file=$obj->name;
$size=$obj->size;
$tmp=$obj->tmp\U名称;
$type=$obj->type;
$error=$obj->error;
如果(是否上载了文件($tmp)&&$error==上载错误(OK)){
/*确定文件应保存到的位置*/
$destination='/path/to/folder/'.$file;
/*保存文件*/
$result=移动上传的文件($tmp,$destination);
/*如果文件保存正确,请继续执行sql命令*/
如果($结果){
$sql=“插入记录(`record\u title`、`record\u Received\u date\u time`、`record\u checked\u date\u time`、`record\u approved\u date\u time`、`record\u status`、`record\u Comments`、`file`、`record\u type`)
值(“$record\u title”、“$record\u Received\u date\u time”、“$record\u checked\u date\u time”、“$record\u approved\u date\u time”、“$record\u status”、“$record\u备注”、“$file”、“1”);
$result=mysqli_查询($dbconfig,$sql);
if($result)头('Location:memberAWP.php');
else echo“Error:.$sql.
”.mysqli_Error($dbconfig);
}
}
}
正如注释中指出的,确保表单设置了正确的enctype
属性-对于文件上载,它应该是enctype='multipart/form data'
除非您使用move\u uploaded\u file()
函数,否则在垃圾回收将其删除之前,文件将在tmp
目录中保留一段有限的时间,并且对文件的引用(在数据库中)将不再有效。处理文件上载时,您应该知道一些基本的事情
1) 例如,您应该在表单中定义加密类型
<form action="demo_post_enctype.asp" method="post" enctype="multipart/form-data">
2) 接下来,您必须使用move_uploaded_file(源、目标)功能才能上载您的文件
<form method="post" enctype="multipart/form-data" name="loginform" class="form-horizontal">
<div class="form-group">
<label class="control-label col-sm-2" for="record_title"> TITLE </label>
<div class="col-sm-10">
<input type="text" class="form-control" id="record_title" name = "record_title" placeholder="Enter Title">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="record_recieved_date_time"> RECIEVED DATE / TIME </label>
<div class="col-sm-10">
<input type="datetime-local" class="form-control" id="record_recieved_date_time" name = "record_recieved_date_time" placeholder="Enter RECIEVED DATE / TIME">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="record_checked_date_time"> CHECKED DATE / TIME </label>
<div class="col-sm-10">
<input type="datetime-local" class="form-control" id="record_checked_date_time" name = "record_checked_date_time" placeholder="Enter CHECKED DATE / TIME">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="record_approved_date_time"> APPROVED DATE / TIME</label>
<div class="col-sm-10">
<input type="datetime-local" class="form-control" id="record_approved_date_time" name = "record_approved_date_time" placeholder="Enter APPROVED DATE / TIME">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="record_status"> STATUS </label>
<div class="col-sm-10">
<input type="text" class="form-control" id="record_status" name = "record_status" placeholder="Enter STATUS">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="record_remarks"> REMARKS </label>
<div class="col-sm-10">
<input type="text" class="form-control" id="record_remarks" name = "record_remarks" placeholder="Enter REMARKS">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="file"> ATTACHMENTS </label>
<div class="col-sm-10">
<input type="file" class="form-control" id="file" name="file" placeholder="Enter ATTACHMENTS">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" name="btn-upload" value="submit" class="btn btn-default">Submit</button>
</div>
</div>
</form>
标题
收到日期/时间
核对日期/时间
核准日期/时间
地位
评论
附件
提交
请在尝试此代码后更改html代码
if(isset($_POST['btn-upload']))
{
$record_title = $_POST['record_title'];
$record_recieved_date_time = $_POST['record_recieved_date_time'];
$record_checked_date_time = $_POST['record_checked_date_time'];
$record_approved_date_time = $_POST['record_approved_date_time'];
$record_status = $_POST['record_status'];
$record_remarks = $_POST['record_remarks'];
// $record_type = $_POST['record_type'];
$file = $_FILES['file']['name'];
//echo $fileName= $_FILES["file"]["name"];
echo $sql = "INSERT INTO records (record_id , record_title , record_recieved_date_time , record_checked_date_time , record_approved_date_time , record_status ,record_remarks , file , record_type)
VALUES (NULL, '$record_title' , '$record_recieved_date_time','$record_checked_date_time','$record_approved_date_time' , '$record_status ' , '$record_remarks' , '$file' , '1')";
if (mysqli_query($dbconfig, $sql)) {
header('Location:memberAWP.php');
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($dbconfig);
}
}
if(i)
if(isset($_POST['btn-upload']))
{
$record_title = $_POST['record_title'];
$record_recieved_date_time = $_POST['record_recieved_date_time'];
$record_checked_date_time = $_POST['record_checked_date_time'];
$record_approved_date_time = $_POST['record_approved_date_time'];
$record_status = $_POST['record_status'];
$record_remarks = $_POST['record_remarks'];
// $record_type = $_POST['record_type'];
$file = $_FILES['file']['name'];
//echo $fileName= $_FILES["file"]["name"];
echo $sql = "INSERT INTO records (record_id , record_title , record_recieved_date_time , record_checked_date_time , record_approved_date_time , record_status ,record_remarks , file , record_type)
VALUES (NULL, '$record_title' , '$record_recieved_date_time','$record_checked_date_time','$record_approved_date_time' , '$record_status ' , '$record_remarks' , '$file' , '1')";
if (mysqli_query($dbconfig, $sql)) {
header('Location:memberAWP.php');
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($dbconfig);
}
}
<?php
if(isset($_POST['submit'])){
$record_title = $_POST['record_title'];
$record_recieved_date_time = $_POST['record_recieved_date_time'];
$record_checked_date_time = $_POST['record_checked_date_time'];
$record_approved_date_time = $_POST['record_approved_date_time'];
$record_status = $_POST['record_status'];
$record_remarks = $_POST['record_remarks'];
$record_type = $_POST['record_type'];
$file = $_FILES['file']['name'];
$target_dir = "uploads/";
$path = $target_dir.$file;
$tmp = $_FILES['file']['tmp_name'];
if(move_uploaded_file($tmp,$path))
{
echo "File successfully uploaded";
}
else
echo "file did not upload";
}
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form method="post" action="" enctype="multipart/form-data" name="loginform" class="form-horizontal">
<div class="form-group">
<label class="control-label col-sm-2" for="record_title"> TITLE </label>
<div class="col-sm-10">
<input type="text" class="form-control" id="record_title" name = "record_title" placeholder="Enter Title">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="record_recieved_date_time"> RECIEVED DATE / TIME </label>
<div class="col-sm-10">
<input type="datetime-local" class="form-control" id="record_recieved_date_time" name = "record_recieved_date_time" placeholder="Enter RECIEVED DATE / TIME">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="record_checked_date_time"> CHECKED DATE / TIME </label>
<div class="col-sm-10">
<input type="datetime-local" class="form-control" id="record_checked_date_time" name = "record_checked_date_time" placeholder="Enter CHECKED DATE / TIME">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="record_approved_date_time"> APPROVED DATE / TIME</label>
<div class="col-sm-10">
<input type="datetime-local" class="form-control" id="record_approved_date_time" name = "record_approved_date_time" placeholder="Enter APPROVED DATE / TIME">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="record_status"> STATUS </label>
<div class="col-sm-10">
<input type="text" class="form-control" id="record_status" name = "record_status" placeholder="Enter STATUS">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="record_remarks"> REMARKS </label>
<div class="col-sm-10">
<input type="text" class="form-control" id="record_remarks" name = "record_remarks" placeholder="Enter REMARKS">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2" for="file"> ATTACHMENTS </label>
<div class="col-sm-10">
<input type="file" class="form-control" id="file" name="file" placeholder="Enter ATTACHMENTS">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" name="submit" value="submit" class="btn btn-default">Submit</button>
</div>
</div>
</form>
</body>
</html>