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 3 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
    $pbFilePath = "${importPath}/document.word.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