从上载文件夹将图像插入数据库

2j4z5cfb  于 2021-06-24  发布在  Mysql
关注(0)|答案(2)|浏览(305)

我已经创建了一个表单,从用户上传图像并存储到我创建的文件夹中,现在我想将图像也插入到mysql数据库中,然后获取它并显示在一个表中

function bs_input_file() {
        $(".input-file").before(
                function () {
                    if (!$(this).prev().hasClass('input-ghost')) {
                        var element = $("<input type='file' class='input-ghost' accept='image/jpg,image/jpeg,image/png,image/gif' style='visibility:hidden; height:0'>");
                        element.attr("name", $(this).attr("name"));
                        element.change(function () {
                            element.next(element).find('input').val((element.val()).split('\\').pop());
                        });
                        $(this).find("button.btn-choose").click(function () {
                            element.click();
                        });
                        $(this).find("button.btn-reset").click(function () {
                            element.val(null);
                            $(this).parents(".input-file").find('input').val('');
                        });
                        $(this).find('input').css("cursor", "pointer");
                        $(this).find('input').mousedown(function () {
                            $(this).parents('.input-file').prev().click();
                            return false;
                        });
                        return element;
                    }
                }
        );
    }

    function generateAlert(type, message){
        new PNotify({
            text: message,
            type: type,
            title: type,
            hide: true,
            buttons: {
                closer_hover: false,
                sticker: false
            },
            mobile: {
                swipe_dismiss: true,
                styling: true
            }
        });
    }

    $(function () {
        bs_input_file();

        //upload file code starts here
        $("body").on("click", ".uploadfilebutton", function(e){
            e.preventDefault();
            if ($('.input-ghost').get(0).files.length === 0) {
                alert("No file selected.");
            }

            var formData = new FormData();
            formData.append('upload', 'fileupload');
            // Attach file
            formData.append('image', $('.input-ghost')[0].files[0]);

            $.ajax({
                url: 'upload.php',
                data: formData,
                type: 'POST',
                contentType: false, 
                processData: false, 
                // ... Other options like success and etc
                beforeSend: function(data, xhr){
                    $('.loader').removeClass("hide");
                },
                success: function(response, status, xhr){
                    var type;
                    if(xhr.status === 200 || xhr.status === '200'){
                        type = "success";
                        $('#Pic').val('');
                    }else{
                        type = "error";
                    }
                    generateAlert(response, type);
                },
                error: function(response, status, xhr){
                    generateAlert("Some Error Occured while uploading file", "error");
                },
                complete: function(response, status, xhr){
                    $('.loader').addClass("hide");
                },
            });
        });

    });

我成功上传图像和图像已显示在文件夹中,但我想插入该图像也在mysql表

62lalag4

62lalag41#

我将使用它来捕获文件名并将其存储在数据库中,因为它比存储实际图像效率更高。 $image = ($_FILES['testimage']['name']); 然后,您所要做的就是将其作为变量检索,然后引用存储在服务器上的位置。例如

<img src="images/<?php echo $Image->testimage; ?>

如果要在数据库中存储实际图像,则需要将其存储为blob类型,但由于图像文件的大小,这种方法不是最佳做法。

t5zmwmid

t5zmwmid2#

你可以用 file_get_contents 获取文件内容,然后将其插入数据库。 $content = file_get_contents($path); ```
if ($conn = mysqli_connect('localhost', 'root', 'root', 'test')) {
$content = mysqli_real_escape_string($conn, $content);
$sql = "insert into images (name, size, type, content) values ('{$name}', '{$size}', '{$type}', '{$content}')";
if (mysqli_query($conn, $sql)) {
$uploadOk = true;
$imageId = mysqli_insert_id($conn);
} else {
echo "Error: Could not save the data to mysql database. Please try
again.";
}
}

相关问题