我是Jquery,Ajax和php的新手,编写了一个程序,将文件作为blob文件上传到数据库,我成功将文件上传到数据库。但是这里有一个问题,<div id="msg"></div>
在提交文件后,现在我无法在该部分中打印成功消息。我尝试了stackoverflow中给出的其他方式和问题,但没有一个对我有用。文件“ 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中。在行print "File uploaded successfully!!";
后添加mysqli_close($connection);
。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);
}
?>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句