我正在尝试在客户端使用ajax上传图像,在服务器端我使用PHP。我面临的问题是,我无法使用 PHP 将 Mysql 数据库表中的图像保存为 blob。我无法定义图像的接收功能。
我需要有关如何定义接收函数并将 blob 图像保存在数据库列中的帮助。
我在下面的 PHP 代码中遗漏了一些东西吗??
Java 脚本:
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript">
$(document).ready(function (e) {
$("#uploadForm").on('submit',(function(e) {
e.preventDefault();
$.ajax({
url: "upload.php",
type: "POST",
data: new FormData(this),
contentType: false,
cache: false,
processData:false,
success: function(data)
{
$("#targetLayer").html(data);
},
error: function()
{
}
});
}));
});
</script>
HTML:
<form id="uploadForm" action="" method="post">
<div id="uploadFormLayer">
<label>Upload Image File:</label><br/>
<input name="userImage" type="file" class="inputFile" />
<input type="submit" value="Submit" class="btnSubmit" />
</form>
PHP:
$db = mysqli_connect("xxxx","xxx","xxx","xxx");
$image = addslashes(is_uploaded_file($_FILES['userImage']['tmp_name']));
$query = "INSERT INTO images (id,image) VALUES('','$image')";
$qry = mysqli_query($db, $query);
最佳答案
试试这个...
file_get_contents() 是将文件内容读入字符串的首选方法。如果您的操作系统支持,它将使用内存映射技术来提高性能。
在表单中添加“enctype="multipart/form-data"”
<form id="uploadForm" action="" method="post" enctype="multipart/form-data">
$query = "INSERT INTO images (id,image) VALUES('','" . mysql_escape_string(file_get_contents($image)) . "')";
关于php - 如何使用 Mysqli(PHP) 将 Ajax 传递的图像作为 Blob 插入 Mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31538451/