Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

주의사항

가이드로 제공되는 아래 코드는 샘플 코드로서, 리소스 관리나 보안 관련 처리에 대해서는 미흡할 수 있습니다.

단순 참고용으로만 사용해주세요.


1.  JSON Encoder 설치

다운로드 : JSON.phps

2. 이미지 업로드(동영상, 파일 삽입도 동일한 형태로 진행)

<?php
    //업로드 디렉토리
    $uploadDir = 'uploads/images';

    //폼 데이터 이름
    $fieldName = 'file';

    //파일 이름
    $fileName = explode('.', $_FILES[$fieldName]['name']);

    //파일 확장자
    $extension = end($fileName);

    //임시 파일 이름
    $tmpName = $_FILES[$fieldName]['tmp_name'];

    //저장될 새로운 파일이름
    $newFileName = sha1(microtime());

    //실제 파일 업로드 경로
    $fileUploadPath = "${uploadDir}/${newFileName}.${extension}";

    //파일을 저장합니다
    move_uploaded_file($tmpName, $fileUploadPath);


	// JSON Encoder를 include 한다.
	include("./JSON.phps");

    //클라이언트로 응답을 보냅니다.
    header('Content-Type: application/json');
    echo json_encode_new(array(
        'uploadPath' => $fileUploadPath,
    ));


	function json_encode_new($data) {
		$json = new Services_JSON();
		return($json->encode($data));
	}
?>

3. HWP, MS Word, LibreOffice 문서 임포트

<?php
    // upload path
    $uploadDir = 'uploads/docs';

    // form filed name
    $fieldName = 'file';

    // file name
    $fileName = explode('.', $_FILES[$fieldName]['name']);

    //file extension
    $extension = end($fileName);

    // temp file name
    $tmpName = $_FILES[$fieldName]['tmp_name'];

    // new file name to save
    $newFileName = sha1(microtime());

    // file upload path
    $fileUploadPath = "${uploadDir}/${newFileName}.${extension}";

    // save file to disk
    move_uploaded_file($tmpName, $fileUploadPath);

    // directory name to save conversion result
    $wordDir = 'works';

    // execute conversion
    $importPath = "${wordDir}/${newFileName}";
    executeConverter($fileUploadPath, $importPath);

    // serialize document data
	// v2.3.0 부터 파일명이 document.word.pb에서 document.pb로 변경됨
    $pbFilePath = "${importPath}/document.pb";
    $serializedData = readPBData($pbFilePath);

	include("./JSON.phps");

    // send response
    header('Content-Type: application/json');
    echo json_encode_new(array(
        'serializedData' => $serializedData,
        'importPath' => $importPath,
    ));

	function executeConverter($inputFilePath, $outputFilePath)
	{
    	$sedocConverterPath = 'c:/sedocConverter/sedocConverter.exe';
	    $fontsDir = 'c:/sedocConverter/fonts';
	    $tempDir = 'c:/sedocConverter/tmp';

	    $cmd = "${sedocConverterPath} -f ${fontsDir} ${inputFilePath} ${outputFilePath} ${tempDir}";
	    exec($cmd);
	}

	function readPBData($pbFilePath)
	{
		$filesize = filesize($pbFilePath);
		$zd = gzopen($pbFilePath, "r");
		$data = substr( gzread($zd, $filesize), 16 );
		gzclose($zd);


	    $byteArray = unpack('C*', gzuncompress($data));
	    $serializedData = array_values($byteArray);

	    return $serializedData;
	}

	function json_encode_new($data) {
		$json = new Service_JSON();
		return($json->encode($data));
	}
?>
  • No labels