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 2
Next »
1. 이미지, 동영상, 파일 업로드
<?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;
}