[PHP] 특정 영역 자동 스크린샷 저장 후 가장 최신 이미지 DB 저장

스크린샷 폼 (index.html)

<html>
    <head>
        <meta charset="utf-8">
        <title>study</title>
        <script src="https://html2canvas.hertzen.com/dist/html2canvas.min.js"></script>
        <script src="https://code.jquery.com/jquery-1.9.1.js" crossorigin="anonymous"></script>
    </head>

    <body>
        <div id="screen" name="screen">
            <img src="87.JPG" style="width: 100px; height: 100px;">
        </div>
    </body>

</html>
<script type="text/javascript">
    html2canvas(document.getElementById('screen')).then(function(canvas) {

        var myImg = canvas.toDataURL("image/png");
        myImg = myImg.replace("data:image/png;base64,", "");

        $.ajax({
        type: "POST",
        data: {
            "imgSrc": myImg
        },
        dataType: "text",
        url: "save_process.php",
        success: function(data) {
        
            console.log(data);
            if (data == "SUCCESS") {
                function doAction1()
                {
                var target = document.createElement( "script" );
                target.setAttribute( "src", "upload.php" );
                document.getElementsByTagName( "body" )[0].appendChild( target );
                }
                
                doAction1();
            
            } else {
            alert("저장 실패");
            }
        },
        error: function(a, b, c) {
            alert("error");
        }
        });
        });

</script>

 

스크린샷 한 것을 특정 폴더에 저장 (save_process.php)

<?php

$imagedata = base64_decode($_REQUEST['imgSrc']);
$file_name = "capture_".date("YmdHis").".png";

$file = $_SERVER['DOCUMENT_ROOT'] . "/ttest/data2/" . $file_name;
file_put_contents($file, $imagedata);

echo "SUCCESS";

?>

* 주의 : $_SERVER['DOCUMENT_ROOT'] 부분은 서버의 절대경로를 나타내는 부분으로 서버의 절대 경로 기준으로 폴더를 지정해야 함 (상대 경로로 /data2/ 이런식으로 하면 안될 수 있음)

 

스크린샷 DB 저장 (upload.php)

<?php
    include "db.php";

    $files = scandir('data2', SCANDIR_SORT_DESCENDING);
    $newest_file = $files[0];
    $dir = 'C:/xampp/htdocs/ttest/data2/';


    $query = "insert into studytest (image) values (load_file('$dir$newest_file'))";
     
    
    if(mysqli_query($dbh, $query))
    {
        echo '<script type="text/javascript"> alert("image profile uploaded"); </script>';
    }else
    {
        echo '<script type="text/javascript"> alert("image profile failed"); </script>';
    }


?>

* data2 폴더를 SCANDIR_SORT_DESCENDING 내림 차순으로 정렬하여 가장 최신 파일($newest_file)을 찾고, SQL LOAD_FILE로 $newest_file$dir 식으로 합쳐서 저장

 

img.png

Index.html 접속하면 특정 영역 바로 스크린샷 하고 지정된 폴더에 저장한 후 저장된 스크린샷 중 가장 최신 파일을 자동 DB 저장되는 모습

0
0
이 글을 페이스북으로 퍼가기 이 글을 트위터로 퍼가기 이 글을 카카오스토리로 퍼가기 이 글을 밴드로 퍼가기

PHP

번호 제목 글쓴이 날짜 조회수
17 [PHP] 구글 캡차(Captcha) 달기 - V3, V2 버전 관리자 12-12 23
16 PhpSpreadsheet 설정 샘플 코드 관리자 06-21 255
15 PHP & JavaScript 엑셀 파일 다운로드 및 업로드 구현 (PhpSpreadsheet 사용) 관리자 06-21 257
14 PHP 스크립트에서 JSON 반환하기 관리자 11-26 2,534
13 PhpSpreadsheet 설치 및 사용법 정리 관리자 11-07 551
12 PHP 프로그램에서 BULK INSERT 문장을 만드는 방법 관리자 07-07 508
11 PHP 문자 암호화하여 Form 전송하기 관리자 07-07 482
10 전화번호 체크하기(휴대전화, 유선, 대표번호 등등) 관리자 07-03 434
9 get vimeo thumb 관리자 04-14 447
8 PHP 에서 MySQL 사용하기 (연결, DB&테이블 생성, 데이터 삽입/선택) 관리자 04-13 602
7 [PHP] 특정 영역 자동 스크린샷 저장 후 가장 최신 이미지 DB 저장 관리자 03-15 519
6 GD PHP TEXT ALIGN 한글 관리자 03-14 423
5 [PHP] 이미지파일에 텍스트 넣기 (라이브러리) 관리자 03-12 756
4 PHP 이미지 워터마크(텍스트&이미지) 삽입하기 관리자 03-11 425
3 한글 종성유무에 맞는 조사(은/는/이/가/을/를/과/와) 변환 관리자 06-22 662
2 한국어 조사 처리 함수 관리자 04-08 760
1 PHP 에서 callback 함수를 이용하여서 mysql select row 함수 개발하는 방법 관리자 10-22 919