php - 如何使用 Mysqli(PHP) 将 Ajax 传递的图像作为 Blob 插入 Mysql

标签 php jquery mysql ajax mysqli

我正在尝试在客户端使用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/

相关文章:

PHP PDO 依赖注入(inject)

php - Bigcommerce API 更新库存水平(正常库存跟踪和按选项跟踪)

php - 无法读取来自 RabbitMQ 的所有消息

JavaScript/JQuery - 你能传递一个函数的引用然后执行它吗?

php - 上传图像后blueimp jQuery-File-Upload不显示缩略图

mysql服务启动时超时

mysql - mysql中如何处理 "too many columns"

php - Alamofire JSON 无法序列化

php - 如何更新列的值作为sql中两个变量之间的差异?

javascript - 如何在 Javascript 中对项目类别进行排序