Как сохранить 'multipart / form-data' (изображение, pdf и т. Д.) В базе данных mysql mediumblob через jquery? - PullRequest
0 голосов
/ 12 февраля 2019

Я создаю инструмент оценки.Логика такова:

  1. В каждом вопросе, когда я нажимаю «Загрузить / просматривать файлы», появляется модальное окно;

  2. Вмодальный, есть раздел, который вы можете выбрать фото / документ / видео для загрузки.Код выглядит так: HTML-код

  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
    
    
    <pre><code>})//End of submit
    </code>
    })
  4. А вот код ajax php:

    require_once '../php-includes/connect.inc.php';
    global $db;
    $assess_id=$_POST['assess_id'];
    $quest_ref=$_POST['quest_ref'];
    $email=$_POST['email'];
    $type=$_POST['type'];
    
    if($type=="file"){
        $file=$_FILES["file"];
        $fileName=$file["name"][0];
        if(empty($fileName)){
            echo "No File Selected";
            return;
        }
        $fileType=$file["type"][0];
        $fileData=$file["tmp_name"][0];
    
    <pre><code>mysqli_query($db, "INSERT INTO `files` VALUES('$assess_id','$quest_ref','$fileName','$fileType','$fileData', NOW(), '$email', '')");
    echo "Success";
    </code>
    }
  5. Однако, когда я проверяю базу данных после загрузки файла, она загружает только имякак 'C: xampp mpphpFE6F.tmp' в большой двоичный объект, очевидно, что $ fileData неверен.Не могли бы вы помочь мне, как я могу это сделать?

Спасибо

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

Самое простое решение, используйте этот плагин:

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

Ravishanker Kusuma проделал такую ​​хорошую работу, что нет смысла кататься самостоятельно. (Я никоим образом не связан с РК, и я даже не общался с ним, но использовал этот плагин в течение многих лет.)

В качестве альтернативы, вы можете использовать его плагин в качестве обученияинструмент / шаблон и посмотрите на его код, чтобы увидеть, как он это сделал.

0 голосов
/ 12 февраля 2019

Еще один способ сделать это - сохранить изображения на свой сервер или что-то вроде cloudinary и сохранить созданную ссылку на SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...