Как отсканировать документ и сохранить его в базе данных в angular 7

Я использую angular 7, и я хочу отсканировать документ и сохранить его в таблице базы данных.

Я пробовал использовать ngx-document-scanner и Dynamic Web TWAIN из приведенных ниже ссылок, но он не дает возможности сохранить его в базе данных

https://www.npmjs.com/package/ngx-document-scannerhttps://blog.dynamsoft.com/imaging/using-dynamic-web-twain-angular-application/

Есть ли другой способ сделать это?

Спасибо

1 ответ

Dynamic Web TWAIN может взаимодействовать с физическими сканерами документов через протоколы, включая TWAIN | ICA | SANE в Windows | macOS | Linux. У вас есть часть сканирования документов, работающая в угловом приложении?

После сканирования страниц изображения будут переданы в библиотеку TWAIN Dynamic Web и сохранены в памяти или кэшированы на локальном диске. Затем вы можете вызвать несколько API-интерфейсов для кодирования данных в 1 из 5 форматов (bmp, jpg, png, tif, pdf) и отправить закодированные данные (файл) в запросе HTTP Post. После этого данные покидают приложение и больше не актуальны для Angular. Упомянутый API указывает URL-адрес в качестве получателя для этого HTTP-запроса. Как только данные достигают этого URL-адреса, они извлекаются и затем могут быть сохранены в базе данных. Таким образом, возникает вопрос: 1 в каком формате вы хотите сохранить отсканированные изображения? 2 какой язык базы данных и серверный язык вы используете?

Для простой демонстрации я вставляю ниже фрагмент кода для этого URL, написанного на PHP для mySQL.

<?php   

    // Interacting with MySQL
    $servername = "127.0.0.1";
    $username = "root";
    $password = "root";
    $dbname = "dwtsample";
    $tablename = "uploadedimages";

    // Create connection
    $conn = new mysqli($servername, $username, $password);
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } else {
        // Check Database Existance
        $db_selected = mysqli_select_db($conn, $dbname);
        if(!$db_selected) {
            // Create database
            $sql_newDB = "CREATE DATABASE ".$dbname;
            if ($conn->query($sql_newDB) === TRUE) {
                // echo "Database created successfully";
            } else {
                die("Error creating database: " . $conn->error);
            }           
        }
        mysqli_select_db($conn, $dbname);

        // Check Table Existance
        $sql_showtable = "SHOW TABLES LIKE '".$tablename."'";
        $rowcount = mysqli_num_rows($conn->query($sql_showtable));
        if ($rowcount > 0) {
            // echo "the table exists";
        } else {
            // sql to create table
            $sql_newtable = "CREATE TABLE ".$tablename." (
            id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
            document_name VARCHAR(30) NOT NULL,
            document_data longblob NOT NULL,
            reg_date TIMESTAMP
            )";
            if ($conn->query($sql_newtable) === TRUE) {
                // echo "Table ".$tablename." created successfully";
            } else {
                die("Error creating table: " . $conn->error);
            }
        }           

            $fileTempName = $_FILES['RemoteFile']['tmp_name'];  
            $fileSize = $_FILES['RemoteFile']['size'];
            $fileName = $_FILES['RemoteFile']['name'];
            $strFileSize = (string)intval($fileSize/1024)."KB";
            $fReadHandle = fopen($fileTempName, 'rb');
            $fileContent = fread($fReadHandle, $fileSize);
            fclose($fReadHandle);
            $imgIndex = 0;
            $sql_insertdata = "INSERT INTO ".$tablename." (document_name,document_data) VALUES ('".$fileName."','".addslashes($fileContent)."')";
            if ($conn->query($sql_insertdata) === TRUE) {
                // echo "File saved in db successfully.";
                $sql_getIndex = "SELECT id FROM ".$tablename;
                $IDs = $conn->query($sql_getIndex);
                if ($IDs->num_rows > 0) {
                    // output data of each row
                    while($row = $IDs->fetch_assoc()) {
                        $_temp = intval($row["id"]);
                        if($_temp > $imgIndex)
                            $imgIndex = $_temp;
                    }
                }
            } else {
                die("Error saving file: " . $conn->error);
            }
            $conn->close();
            echo "PHP:"."DWTUploadFileIndex:".strval($imgIndex)."DWTUploadFileName:".$fileName."UploadedFileSize:".$strFileSize;

    }
?>
Другие вопросы по тегам