<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
	<channel>
				<title><![CDATA[대량 데이터를 csv파일을 통해 insert시 알림 질문드립니다.]]></title>
		<link>https://www.cosmosfarm.com/threads/rss/document/57209</link>
		<description><![CDATA[<pre>
<code class="language-php">add_shortcode("csv_upload_shortcode", "csv_upload_shortcode");
function csv_upload_shortcode(){
global $wpdb;

ob_start();
ini_set('max_execution_time',60);
set_time_limit(60);

$role = Check_RoleAndIsLogged($_SESSION["uid"],$_SESSION["is_logged"]);

// Table name
$tablename = $wpdb-&gt;prefix."text_table";

// Import CSV
if(isset($_POST['butimport'])){

    echo "&lt;script&gt;alert('약 20초 소요됩니다. 잠시만 기다려주세요.')&lt;/script&gt;";
    ob_flush();
    flush();
    sleep(1);

    // File extension
    $extension = pathinfo($_FILES['import_file']['name'], PATHINFO_EXTENSION);

    // If file extension is 'csv'
    if(!empty($_FILES['import_file']['name']) &amp;&amp; $extension == 'csv'){

        $wpdb-&gt;query("TRUNCATE TABLE `{$tablename}`"); // 테이블 데이터 초기화

        $totalInserted = 0;

        // Open file in read mode
        $csvFile = fopen($_FILES['import_file']['tmp_name'], 'r');

        $row = 0;
        while (($data = fgetcsv($csvFile)) !== FALSE) {
            if($row == 0) { // 첫 행은 스킵
                $row ++;
                continue;
            }

            

            $wpdb-&gt;insert($tablename, array(
                'containercode' =&gt;trim($data[0]),
                'code' =&gt;trim($data[1]),
                'description' =&gt;trim($data[2]),
                'itemstatus' =&gt;trim($data[3]),
                'statusdate' =&gt;trim($data[4]),
                'accountdescription' =&gt;trim($data[5]),
                'adddate' =&gt;trim($data[6]),
                'category_01' =&gt;trim($data[7]),
                'category_02' =&gt;trim($data[8]),
                'category_03' =&gt;trim($data[9]),
            ));

            $row++;
        }
        echo "&lt;h5 style='color: green;'&gt;Total record Inserted : ".($row-1)."&lt;/h5&gt;";
        fclose($csvFile);


    }else{
        echo "&lt;h5 style='color: red;'&gt;CSV 파일만 업로드 가능합니다.&lt;/h5&gt;";
    }

}

?&gt;
&lt;script&gt;
    &lt;?php if($role != 'admin'){?&gt;
    alert('관리자 페이지입니다.');
    window.history.back();
    &lt;?php }?&gt;
&lt;/script&gt;

&lt;!-- Form --&gt;
&lt;p style="color:#d80202; margin-bottom:10px"&gt;* 업로드 전에 전체 리스트를 반드시 백업해주세요 ! *&lt;/p&gt;
&lt;form method='post' action='&lt;?= $_SERVER['REQUEST_URI']; ?&gt;' enctype='multipart/form-data'&gt;
  &lt;input type="file" name="import_file" &gt;
  &lt;input type="submit" name="butimport" value="Import"&gt;
&lt;/form&gt;

&lt;script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.min.js"&gt;&lt;/script&gt;
&lt;script&gt;
    // $(document).ready(function(){
    //     $("form").submit(function(event) {
    //         alert('확인 클릭 후 약 20초 소요됩니다. \n잠시만 기다려주세요.');
    //     });
    // });
&lt;/script&gt;


&lt;?php

return ob_get_clean();
}</code></pre>

<p>post 받았을시에 먼저 시간이 소요된다는 알림으로 시작하고 싶습니다.</p>

<p>버퍼가 채워지기 전에 먼저 출력하기 위해 ob_flush를 생각했는데 모두 insert된 후에 출력이 되네요.</p>

<p>insert 이루어지긴 전에 alert 방법이없을까요?</p>

<p>현재는 약 15초 정도 빈 화면에서 로딩만 이루어지고 이후에 알림과 함께 완료됩니다.</p>

<p>조언 부탁드립니다 :)</p>

<p> </p>

<p>새해 복 많이받으세요 !</p>]]></description>
		<copyright>Copyright 2026, 코스모스팜</copyright>
				<item>
			<title><![CDATA[안녕하세요~^^

답변이 늦어 이미 해결하셨을지도 모르겠습니다.

 

실행을 해볼 수 없어 정확한 답변...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/57749</link>
			<description><![CDATA[<p>안녕하세요~^^</p>

<p>답변이 늦어 이미 해결하셨을지도 모르겠습니다.</p>

<p> </p>

<p>실행을 해볼 수 없어 정확한 답변은 어렵지만</p>

<p>post를 확인하는 if문을 ob_start() 이전에 위치하고,</p>

<p>ob_start() 이전에 alert 코드를 작성해보시겠어요?</p>

<p>고맙습니다.</p>]]></description>
			<author>스레드봇</author>
			<pubDate>Fri, 04 Feb 2022 04:58:53 +0000</pubDate>
			<category>PHP 프로그래밍</category>
		</item>
			</channel>
</rss>