如何通过jQuery将“ multipart / form-data”(图片,pdf等)保存到mysql数据库mediumblob?

时间:2019-02-11 23:28:36

标签: php jquery ajax

我正在构建评估工具。逻辑是:

  1. 在每个问题中,一旦我单击“上传/查看文件”,它将弹出一个模态;

  2. 在模式中,有一个部分可以选择要上传的图片/文档/视频。代码如下: Html code

  3. 单击提交后,它将触发jquery,如下所示:

    $(document).ready(function(){   
        $('#upload_file_attachment').submit(function(event){
            event.preventDefault();
            var formData = new FormData($(this)[0]);
            $.ajax({
                url: "ajax/upload-attachment.ajax.php",
                type: "POST",
                data: formData,
                async: false,
                cache: false,
                contentType: false, 
                processData: false,
                'success': function(data){
                                $('#upload_success_msg').fadeIn().html(data);
                                setTimeout(function(){
                                    $('#upload_success_msg').fadeOut("Slow");
                                },5000);
                            }
            }); //End of ajax
    
    
    
    })//End of submit
    
    })
  4. 以下是ajax php代码:

    mysqli_query($db, "INSERT INTO `files` VALUES('$assess_id','$quest_ref','$fileName','$fileType','$fileData', NOW(), '$email', '')");
    echo "Success";
    
  5. 但是,当我在上传文件后检查数据库时,它仅将“ C:xampp mpphpFE6F.tmp”之类的名称上传到Blob中,显然$ fileData不正确。你能帮我怎么做吗?

谢谢

2 个答案:

答案 0 :(得分:1)

另一种方法是将图像保存到服务器或cloudinary之类,并将创建的链接保存到SQL。

答案 1 :(得分:1)

最简单的解决方案,请使用此插件:

http://hayageek.com/docs/jquery-upload-file.php#doc

Ravishanker Kusuma做得非常好,以至于没有意义。 (我与RK无关,甚至没有与他交流,但已经使用了多年了。)

或者,您可以将他的插件用作学习工具/模板,并查看他的代码以了解他的操作方式。