Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- C#
- 안드로이드
- soundpool
- xe
- PHP
- android 효과음
- 자동 생성
- Android
- curl
- 안드로이드 푸시
- not working
- php 취약점
- mysql
- Mail Server
- 안드로이드 푸쉬
- 우분투
- html5
- FCM
- javascript
- 자바스크립트
- 설치
- dovecot
- WebView
- UML
- C# IO
- roundcube
- php 시큐어코딩
- 안드로이드 gcm
- chart.js
- 폼메일
Archives
- Today
- Total
그러냐
네이버 스마트 에디터 이미지 리사이즈 본문
반응형
단순 보여지는 사이즈 변경이 아닌 업로드이미지 파일 자체의 사이즈를 줄인다
editorfile/php/FileUploader_html5.php 의 기존 소스에 아래와 같이 변경한다
html5가 아닌 경우에는 FileUploader.php을 수정하면 되는데 그 부분은 어렵지 않으므로 생략한다
resizeWH() 함수와 resize_copy_b() 함수를 추가했으며 소스하단에서 너비가 1280이 넘으면 기존 소스와 분기하도록 했다.
<?php
function resizeWH($w,$h) {
$percent = 0.8;
$cnt = 0;
while($w>1280){
$w = $w*$percent;
$h = $h*$percent;
$cnt++;
if($cnt>100) {
break;
}
}
return array($w,$h);
}
function resize_copy_b($img,$get_FILENAME,$pdsDIR,$wh){
$ext = explode('.',$get_FILENAME);
$width = imagesx($img);
$height = imagesy($img);
$new_width = $wh[0];
$new_height = $wh[1];
$image_p = imagecreatetruecolor($new_width, $new_height);
imagecopyresampled($image_p, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
if($ext[count($ext)-1] == "jpg"||$ext[count($ext)-1] == "jpeg"){
imagejpeg($image_p, $pdsDIR.$get_FILENAME, 100);
}else if($ext[count($ext)-1] == "png"){
imagepng($image_p, $pdsDIR.$get_FILENAME, 100);
}else if($ext[count($ext)-1] == "gif"){
imagegif($image_p, $pdsDIR.$get_FILENAME, 100);
}
}
$sFileInfo = '';
$headers = array();
foreach ($_SERVER as $k => $v){
if(substr($k, 0, 9) == "HTTP_FILE"){
$k = substr(strtolower($k), 5);
$headers[$k] = $v;
}
}
$file = new stdClass;
$temp_var= explode(".", rawurldecode($headers['file_name']));
$tmp_nm = str_replace("", "", time().'-'.rand(0,100).'.'.$temp_var[count($temp_var)-1]);
$file->name = $tmp_nm;//rawurldecode($headers['file_name']);
$file->size = $headers['file_size'];
$file->content = file_get_contents("php://input");
$newPath = '../upload/'.iconv("utf-8", "cp949", $file->name);
$img = imagecreatefromstring($file->content);
$width = imagesx($img);
$height = imagesy($img);
if($width>1280){
$wh = resizeWH($width,$height);
resize_copy_b($img,iconv("utf-8", "cp949", $file->name),'../upload/',$wh);
$sFileInfo .= "&bNewLine=true";
$sFileInfo .= "&sFileName=".$file->name;
$sFileInfo .= "&sFileURL=https://".$_SERVER["HTTP_HOST"]."/editorfile/upload/".$file->name;
}else{
if(file_put_contents($newPath, $file->content)) {
$sFileInfo .= "&bNewLine=true";
$sFileInfo .= "&sFileName=".$file->name;
$sFileInfo .= "&sFileURL=https://".$_SERVER["HTTP_HOST"]."/editorfile/upload/".$file->name;
}
}
echo $sFileInfo;
?>
반응형
'php' 카테고리의 다른 글
curl_multi를 이용한 병렬처리 (0) | 2019.11.11 |
---|---|
[PHPEXCEL] phpexcel 사용법 (0) | 2019.10.24 |
PHPExcel 시트추가 add sheet (0) | 2019.02.13 |
PHPexcel 라이브러리 참조 자료 (0) | 2019.01.23 |
PHP WebSocket (웹소켓) 라이브러리 Ratchet, ReactPHP, sandstone (0) | 2019.01.03 |