Загрузите файл PDF в базу данных MYSQL с помощью Ajax, PHP

Я хочу загрузить файл pdf из ввода пользователя в мою базу данных mysql. Я предоставил код, который показывает форму регистрации пользователей с типом ввода для загрузки PDF. Я хочу опубликовать это через AJAX в свой php-скрипт, который будет введен в мою базу данных. Я не могу заставить этот код работать. Мы ценим любые предложения?

Фрагмент ввода формы -

    <form id='form1'>
               <label>Are you a:</label>
                    <select name = "type" id = "type">
                            <option>Select...</option>
                            <option value = "teacher">Teacher</option>
                            <option value = "school">School</option>
                        </select><br>

                    <label>Teaching Council Number / School Roll 
 Number</label>
                    <input type = "text" name = "userNo" id = "userNo" 
 value = "" required><br>

                    <label>Full Name / School Name</label>
                    <input type = "text" name = "name" id = "name" required> 
 <br>

                    <label>Level:</label>
                    <select name = "level" id = "level">
                            <option>Select...</option>
                            <option value = "primary">Primary</option>
                            <option 
 value = "secondary">Secondary</option>
                        </select><br>

                    <label>Phone Number</label>
                    <input type = "number" name = "phoneNo" id = "phoneNo" 
 data-clear-btn = "false" pattern = "[0-9]*" value = ""><br>

                    <label>Address</label>
                    <input type = "text" name = "location" id = "location" 
 placeholder = "" required><br>

                    <label>Email</label>
                    <input type = "email" id = "email" data-clear- 
btn = "false" required><br>

                    <label for = "password">Password</label>
                    <input type = "password" name = "password" 
 id = "password" value = "" required><br>

                    <label for = "password">Confirm Password</label>
                    <input name = "password_confirm" required = "required" 
 type = "password" id = "password_confirm" oninput = "check(this)" /><br>




                    <label for = "file">Curriculum Vitae <i>(PDF only) 
</i></label>
                    <input type = "file" name = "file" id = "cv" value = "cv" 
 accept = ".pdf"><br>

                    <label for = "file">Garda Vetting <i>(PDF only)</i> 
</label>
                    <input type = "file" name = "gardavetting" 
 id = "gardavetting" value = "gardavetting" accept = ".pdf"><br>

                    <label>LinkedIn URL <i>(optional)</i></label>
                    <input type = "text" id = "linkedin" name = "linkedin"> 
 <br>


                    <button type = "submit" id = "submit1" name = "submit1" 
 onclick = "myFunction1();">Submit</button><br>
                  </form>
    </div>

PHP -

<?php



// Selecting Database 

include_once 'dbh.php';

//Here we fetch the data from the URL that was passed from our HTML 
form
$type2 = $_POST['type'];
$userNo2 = $_POST['userNo'];
$name2 = $_POST['name'];
$level2 = $_POST['level'];
$phoneNo2 = $_POST['phoneNo'];
$location2 = $_POST['location'];
$email2 = $_POST['email'];
$password2 = $_POST['password'];
$cv2 = $_POST['cv'];
$gardavetting2 = $_POST['gardavetting'];
$linkedin2 = $_POST['linkedin'];

   $sql = "INSERT INTO users (type, userNo, name, level, phoneNo, 
location, email, password, cv, gardavetting, linkedin) VALUES 
('$type2', '$userNo2', '$name2', 

$ level2, $ phoneNo2, $ location2, $ email2, $ password2, $ cv2, $ gardav etting2 ',' $ linkedin2 '); ";

   mysqli_query($conn, $sql);
 ?>

JS -

function myFunction1() {
var type = document.getElementById("type").value;
var userNo = document.getElementById("userNo").value;
var name = document.getElementById("name").value;
var level = document.getElementById("level").value;
var phoneNo = document.getElementById("phoneNo").value;
var location = document.getElementById("location").value;
var email = document.getElementById("email").value;
var password = document.getElementById("password").value;
var cv = document.getElementById("cv").value;
var gardavetting = document.getElementById("gardavetting").value;
var linkedin = document.getElementById("linkedin").value;

var dataString = '&type=' + type + '&userNo=' + userNo + '&name=' + 
name + '&level=' + level + '&phoneNo=' + phoneNo + '&location=' + 
location + '&email=' + email+ '&password=' + password + '&cv=' + cv + 
 '&gardavetting=' + gardavetting + '&linkedin=' + linkedin ;

if (  type== '' || userNo == '' || name == '' || level == '' || 
phoneNo == '' || location == '' || email == '' || password == '' || cv 
 == '' || gardavetting == '')
{
    alert("Please Fill All Fields");
}
else
{
 //AJAX code to submit form.
    $.ajax({
        type: "POST",
        url: "http://localhost:8888/EduSubOct/signup.php",
        data: dataString,
        cache: false,
        success: function(html) {
            alert("Information Entered Successfully");
        }
    });
}
return false;
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
3 458
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте этот код для хранилища файлов и вставки

<!DOCTYPE html>
<html>
<head>
    <title>test</title>
</head>
<body>
    <form id = "form">
        <label for = "file">Curriculum Vitae <i>(PDF only)</i></label>
        <input type = "file" name = "file" id = "cv" value = "cv" accept = ".pdf"><br>

        <label for = "file">Garda Vetting <i>(PDF only)</i></label>
        <input type = "file" name = "gardavetting" id = "gardavetting" value = "gardavetting" accept = ".pdf"><br>

        <label>LinkedIn URL <i>(optional)</i></label>
        <input type = "text" id = "linkedin" name = "linkedin"> <br>

        <button type = "submit" id = "submit1" name = "submit1">Submit</button><br>
    </form>
</body>
<script
  src = "https://code.jquery.com/jquery-3.3.1.min.js"
  integrity = "sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8 = "
  crossorigin = "anonymous"></script>
<script>
    $('#form').on('submit', function(e) {
        e.preventDefault();
        var form=document.getElementById('form');
        var fdata=new FormData(form); 
        $.ajax({
            type: "POST",
            url: 'insert.php',
            data: fdata,
            contentType: false,
            cache: false,
            processData:false,
            success: function(result)
            { 
                if (result == 0)
                {
                    alert('file stored');
                }else{
                    alert('something went wrong');
                }
            }
        });
    });
</script>
</html>

insert.php

<?php
$servername = "host";
$username = "server database username";
$password = "server database password";
$dbname = "your db name";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$type2 = $_POST['type'];
$userNo2 = $_POST['userNo'];
$name2 = $_POST['name'];
$level2 = $_POST['level'];
$phoneNo2 = $_POST['phoneNo'];
$location2 = $_POST['location'];
$email2 = $_POST['email'];
$password2 = $_POST['password'];
$gardavetting2 = $_POST['gardavetting'];
$linkedin2 = $_POST['linkedin'];

// STORE PDF FILE IN FOLDER
if (isset($_FILES['file']['name']))
{
    $cpath = "resume/";
    $file_parts = pathinfo($_FILES["file"]["name"]);
    $file_path = 'resume'.time().'.'.$file_parts['extension'];
    move_uploaded_file($_FILES["file"]["tmp_name"], $cpath.$file_path);
    $cv2 = $file_path;
}

$sql = "INSERT INTO users (type, userNo, name, level, phoneNo, 
location, email, password, cv, gardavetting, linkedin) VALUES('$type2', '$userNo2', '$name2', '$level2','$phoneNo2','$location2','$email2','$password2','$cv2','$gardav etting2','$linkedin2');";

if ($sql){
    echo '0';
}

mysqli_query($conn, $sql);

?>

Если вы храните какой-либо файл, например (изображение, pdf, видео), используйте метод сериализации формы или метод данных формы, чтобы избежать ошибок. Здесь я даю код для хранения файла pdf в локальной папке и вставляю в базу данных mysql с помощью AJAX без обновления страницы, мы можем получить результат.

Если бы я должен был добавить что-то в свою форму, как бы я это сделал. См. Отредактированный вопрос выше.

Adam Mc Menamin 28.10.2018 14:19

Ваш код работает нормально, спасибо! Однако кажется, что я могу ввести эту информацию только ОДИН РАЗ в свою базу данных. Любые решения, как я могу разрешить несколько записей?

Adam Mc Menamin 28.10.2018 15:31

Думаю, у меня все заработало. Есть идеи, как отобразить этот PDF-файл из базы данных или сделать его ссылкой? Благодарность

Adam Mc Menamin 28.10.2018 19:56

да, вы можете получить этот файл в качестве ссылки, потому что вы храните этот файл в папке резюме проекта, поэтому сначала получите данные из базы данных и установите полный путь к pdf, например (<? php echo base_url ();?> имя папки / имя_файла из базы данных;)

Kishan Sorathiya 30.10.2018 19:11

Другие вопросы по теме