在jquery ajax中成功上传数据文件后,无法打印成功消息


Unable to print success messages after data is successful file upload in jquery ajax

我是Jquery、Ajax和php的新手,我写了一个程序,将文件作为blob文件上传到数据库,我成功地将文件上传到了数据库。但这里出现了一个问题,现在我无法在提交文件后在<div id="msg"></div>部分打印成功消息。我尝试了stackover flow中给出的其他方法和问题,但都没有成功"index.php"

包含ajax和文件上传的代码,其中作为upload.php包含将文件插入数据库的逻辑。

index.php

<?php include_once 'dbconfig.php'; ?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>File upload</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script>
        $(document).ready(function() {
            $("#button").click(function() {
                var formData = new FormData();
                formData.append('file', $('#file')[0].files[0]);
                $.ajax({
                    url : 'upload.php',
                    type : 'POST',
                    data : formData,
                    processData: false,  
                    contentType: false, 
                    success : function(data) {
                        //console.log(data);
                        document.getElementbyID("msg").innerHTML()="";
                        alert(data);
                    }
                });
            });
        });
    </script>
</head>
<body>
    <div id="header">
        <tt>Upload file</tt>
    </div>
    <div id="msg"></div>
    <form id="form" name="form" enctype="multipart/form-data">
        <input type="file" name="file" id="file" />
        <button id="button" name="button"/>Submit</button>
    </form>
</body>
</html>

upload.php

<?php
    include_once 'dbconfig.php';
    $file = rand(1000, 100000)."-".$_FILES['file']['name'];
    $file_loc = $_FILES['file']['tmp_name'];
    $file_size = $_FILES['file']['size'];
    $file_type = $_FILES['file']['type'];
    $folder = "upload/";
    // new file size in KiloByte
    $new_size = $file_size / 1024;
    // make file name in lower case
    $new_file_name = strtolower($file);
    $final_file=str_replace(' ', '-', $new_file_name);
    if (move_uploaded_file($file_loc, $folder.$final_file)) {
        $sql = "INSERT INTO files(file) VALUES('$final_file')";
        mysqli_query($connection, $sql);
        mysqli_close($connection);
    }
?>

您必须首先将响应打印到php中。在mysqli_close($connection);行之后添加print "File uploaded successfully!!";。JQuery代码似乎是正确的。

<?php
include_once 'dbconfig.php';
try {
         $file = rand(1000,100000)."-".$_FILES['file']['name'];
         $file_loc = $_FILES['file']['tmp_name'];
         $file_size = $_FILES['file']['size'];
         $file_type = $_FILES['file']['type'];
         $folder="upload/";
         // new file size in KiloByte
         $new_size = $file_size/1024;
         // make file name in lower case
         $new_file_name = strtolower($file);
         $final_file=str_replace(' ','-',$new_file_name);
         if(move_uploaded_file($file_loc,$folder.$final_file))
         {
              $sql="INSERT INTO files(file) VALUES('$final_file')";  
              mysqli_query($connection,$sql);
                        
              print "success";
         }
         else
        {
          print "error";
         }
  } catch ( Exception $e ) {
    print "error";
    }finally {
   mysqli_close($connection);  
  }
?>

您可以在php代码中使用echo命令,使用echo,您将返回标志消息以了解操作结果。

在upload.php中:

<?php
 include_once 'dbconfig.php';
 try {
     $file = rand(1000,100000)."-".$_FILES['file']['name'];
     $file_loc = $_FILES['file']['tmp_name'];
     $file_size = $_FILES['file']['size'];
     $file_type = $_FILES['file']['type'];
     $folder="upload/";
     // new file size in KiloByte
     $new_size = $file_size/1024;
     // make file name in lower case
     $new_file_name = strtolower($file);
     $final_file=str_replace(' ','-',$new_file_name);
     if(move_uploaded_file($file_loc,$folder.$final_file))
     {
          $sql="INSERT INTO files(file) VALUES('$final_file')";  
          mysqli_query($connection,$sql);
          print "success";
     }
     else
    {
      print "error";
     }
} catch ( Exception $e ) {
  print "error";
}finally {
 mysqli_close($connection);  
}
?>

在索引页中:

            $.ajax({
                   url : 'upload.php',
                   type : 'POST',
                   data : formData,
                   processData: false,  
                   contentType: false, 
                   success : function(data) 
                       {
                        if(data ='success')                               
                          document.getElementbyID("msg").innerHTML()="success.";
                       }
                   });