제보 내용에 올바르지 않은 코드가 다수 포함되어 있습니다.
페이지 정보
본문
댓글목록
웹지기님의 댓글
웹지기 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 아이피 (173.♡.♡.136) 작성일
<code></code> 의 < > 아니고 [ ] 로 감싸 주셔야 합니다.
[code]
<?php
include "./_common.php";
$isUpload = is_uploaded_file($_FILES['file[]']['tmp_name']);
// SUCCESSFUL
if($isUpload) {
$ym = date('ym', G5_SERVER_TIME);
$data_dir = G5_DATA_PATH.'/editor/'.$ym;
$data_url = G5_DATA_URL.'/editor/'.$ym;
@mkdir($data_dir, G5_DIR_PERMISSION);
@chmod($data_dir, G5_DIR_PERMISSION);
$tmp_name = $_FILES['tuieditorFile']['tmp_name'];
$name = $_FILES['tuieditorFile']['name'];
$filename_ext = strtolower(array_pop(explode('.',$name)));
$mime_result = ' '.@mime_content_type($tmp_name).@shell_exec('file -bi '. $tmp_name);
// thanks to @dewoweb
if (!preg_match("/(jpe?g|gif|bmp|png)$/i", $filename_ext)) { // check file extension
// error
@unlink($tmp_name);
echo json_encode(array('success' => false, 'error' => 100)); // file type error
} else if ( !stripos($mime_result, 'jpeg') && // check file mime-type
!stripos($mime_result, 'jpg') &&
!stripos($mime_result, 'gif') &&
!stripos($mime_result, 'bmp') &&
!stripos($mime_result, 'png') ) {
@unlink($tmp_name);
echo json_encode(array('success'=> false, 'error' => 101));
} else if (!getimagesize($tmp_name)) { // check image resolution, if resolutions is null, return fail
@unlink($tmp_name);
echo json_encode(array('success'=> false, 'error' => 102));
} else {
$file_name = sprintf('%u', ip2long($_SERVER['REMOTE_ADDR'])).'_'.get_microtime().".".$filename_ext;
$save_dir = sprintf('%s/%s', $data_dir, $file_name);
$save_url = sprintf('%s/%s', $data_url, $file_name);
@move_uploaded_file($tmp_name, $save_dir);
echo json_encode(array('success' => true, 'save_url' => $save_url ));
}
} else {
$error = $_FILES['tuieditorFile']['error'];
// refer to error code : http://www.php.net/manual/en/features.file-upload.errors.php
// example) 1 is error for upload_max_filesize
echo json_encode(array('success'=> false, 'error' => $error));
}
?>
[/code]
마젠토님의 댓글의 댓글
마젠토 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 아이피 (47.♡.♡.2) 작성일
글 내용입니다 뭐가 걸리는지 모르겠습니다.
[code]
예전에는 textarea를 사용했는데..
요즘은 div를 많이 사용하네요..
텍스트에리어를 쓰면 그누보드에서 넘어오고 쓰여지는 것이 쉽게 됩니다.
그래서
텍스트에리어 스타일을 display:none으로 처리해서 그누보드와 주고 받게 되는 것 같습니다.
(class나 id로 서로 연결..)
다음은 에디터가 치고 들어 갔을 때의 CSS가 충돌나는 것이네요..
그리고 다음은 에디터에서 이미지 업로드하는 방식입니다.
기존의 upload.php (이것 저것 찾아보니 제일 많이 사용중.) 그런데 뭔지 잘 모름 ㅠㅠ
[code]
<?php
include "./_common.php";
$isUpload = is_uploaded_file($_FILES['file[]']['tmp_name']);
// SUCCESSFUL
if($isUpload) {
$ym = date('ym', G5_SERVER_TIME);
$data_dir = G5_DATA_PATH.'/editor/'.$ym;
$data_url = G5_DATA_URL.'/editor/'.$ym;
@mkdir($data_dir, G5_DIR_PERMISSION);
@chmod($data_dir, G5_DIR_PERMISSION);
$tmp_name = $_FILES['tuieditorFile']['tmp_name'];
$name = $_FILES['tuieditorFile']['name'];
$filename_ext = strtolower(array_pop(explode('.',$name)));
$mime_result = ' '.@mime_content_type($tmp_name).@shell_exec('file -bi '. $tmp_name);
// thanks to @dewoweb
if (!preg_match("/(jpe?g|gif|bmp|png)$/i", $filename_ext)) { // check file extension
// error
@unlink($tmp_name);
echo json_encode(array('success' => false, 'error' => 100)); // file type error
} else if ( !stripos($mime_result, 'jpeg') && // check file mime-type
!stripos($mime_result, 'jpg') &&
!stripos($mime_result, 'gif') &&
!stripos($mime_result, 'bmp') &&
!stripos($mime_result, 'png') ) {
@unlink($tmp_name);
echo json_encode(array('success'=> false, 'error' => 101));
} else if (!getimagesize($tmp_name)) { // check image resolution, if resolutions is null, return fail
@unlink($tmp_name);
echo json_encode(array('success'=> false, 'error' => 102));
} else {
$file_name = sprintf('%u', ip2long($_SERVER['REMOTE_ADDR'])).'_'.get_microtime().".".$filename_ext;
$save_dir = sprintf('%s/%s', $data_dir, $file_name);
$save_url = sprintf('%s/%s', $data_url, $file_name);
@move_uploaded_file($tmp_name, $save_dir);
echo json_encode(array('success' => true, 'save_url' => $save_url ));
}
} else {
$error = $_FILES['tuieditorFile']['error'];
// refer to error code : http://www.php.net/manual/en/features.file-upload.errors.php
// example) 1 is error for upload_max_filesize
echo json_encode(array('success'=> false, 'error' => $error));
}
?>
[/code]
업로드 쪽에서 ajax로 올리는 데.. 파일을 하나씩 올려주면 되네요.. (Toast editor)
보통 PHP와 javascript로 할 경우에는 어떤식으로 디버깅하나요? javascript는 브라우저 디버거로 어떻게든 찍어보고 있는데.
상단을 찍어 볼수 있는 방법을 모르겠네요..
기존 예제는 ajax와 php로 되어 있고, 마크다운 에디터는 xtmlHTTPRequest를 사용하네요.. (둘이 같은 것인지???)
갈수록 어렵네요.. 일단 제작자에게 callback 펑션을 요청해 놨습니다.
업로드 성공하면. ![파일네임]을 리턴하면 실제로는 업로드된 이미지 링크를 붙여주면 될것 같습니다.
![파일네임](http:localhost/data/editor/1909/{시간}.jpg)
받은 배열을 한번에 올리면, 그것을 에디터에 넣는 것은 어떻게 할까요?
Toast UI는 하나씩 올릴때 마다 Callback 펑션이 있어서 에디터에 들어가는 String을 넘겨주는 것 같습니다.
![파일네임]을 넘겨주면 위쪽에서 뒤에 이미지 링크를 붙여주는 것이죠..
[/code]
일반 WYSIWYG에서는 그냥 <img src="링크">를 넣어주면 되겠죠..