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

Version 1 Next »

1. Uploading images, video clips and other files

<?php
try {
    //업로드 디렉토리
    $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);

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

} catch (Exception $e) {
    echo $e->getMessage();
    http_response_code(404);
}





2. Importing MS Word / LibreOffice documents

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

    //폼 데이터 이름
    $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);

    //문서 변환을 결과를 저장하는 디렉토리
    $wordDir = 'works';

    //문서 변환
    $zipFilePath = "${wordDir}/${newFileName}.zip";
    executeConverter($fileUploadPath, $zipFilePath);

    //압축 풀기
    $unzipFilePath = "${wordDir}/${newFileName}";
    unzip($zipFilePath, $unzipFilePath);

    //데이터 직렬화
    $pbFilePath = "${unzipFilePath}/document.word.pb";
    $serializedData = readPBData($pbFilePath);

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

} catch (Exception $e) {
    echo $e->getMessage();
    http_response_code(404);
}

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 unzip($zipFilePath, $unzipFilePath)
{
    $zip = new ZipArchive;

    if ($zip->open($zipFilePath) === true) {
        $zip->extractTo($unzipFilePath);
        $zip->close();
    }
}

function readPBData($pbFilePath)
{
    $fb = fopen($pbFilePath, 'r');
    $data = stream_get_contents($fb, -1, 16);
    fclose($fb);

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

    return $serializedData;
}




  • No labels