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>