ajax file upload 2 정리본 (php용)
Posted by Albert 4781Day 19Hour 59Min 53Sec ago [2012-03-18]
요즘 많이 유행되는 파일업로드 방식이다
예전에 비하여 쉬게 파일을 업로드 시킬수 있을뿐만 아니라 html에디터 편집기에 부치기 편리하다
이외에도 많은 추가 항목들을 지원하여 편리하다
간단히 php용으로 하나 정리하여 올려놓으니 필요한 분들은 참고하여 사용하여 주시길바랍니다. ^^
=========================================================================================
html 페이지단
=========================================================================================
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr" />
<link href="fileuploader.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="fup" >
<noscript>
<p>Please enable JavaScript to use file uploader.</p>
<!-- or put a simple form for upload here -->
</noscript>
</div>
<script src="fileuploader.js" type="text/javascript"></script>
<script>
function createUploader(){
var uploader = new qq.FileUploader({
element: document.getElementById('fup'),
action: 'up.php',
onSubmit : function(file, ext, et2){
var IMG_FORMAT = "\\.(gif|jpg|jpeg|png)$";
if((new RegExp(IMG_FORMAT, "i")).test(ext) == false){
alert("사진 확장자는 gif,jpg,jpeg,png 만 가능합니다.");
return false;
}
},
onComplete: function(file, response,abc){
alert(abc.rfile);
}
});
}
window.onload = createUploader;
</script>
</body>
</html>
=========================================================
php 페이지단
=========================================================
<?php
//공통함수
//파일 업로드
$fileName = $_POST['qqfile'];
function uploadfile($type,$name,$ext,$size,$error,$tmp_name,$targetname,$upload_dir)
{
if ($_FILES["qqfile"]["error"] > 0)
{
echo "Error: " . $_FILES["ufile"]["error"] . "<br />";
}
else
{
$MAX_SIZE = 50000000000;
if($size>$MAX_SIZE)
alert("업로드 하려는 파일크기가 최대치를 초과하여 업로드시 실패하였습니다.");
if (sizeof(explode('.php', $name))>1 ||
sizeof(explode('.phtm', $name))>1 ||
sizeof(explode('.htm', $name))>1 ||
sizeof(explode('.cgi', $name))>1 ||
sizeof(explode('.pl', $name))>1 ||
sizeof(explode('.exe', $name))>1 ||
sizeof(explode('.jsp', $name))>1 ||
sizeof(explode('.asp', $name))>1 ||
sizeof(explode('.js', $name))>1 ||
sizeof(explode('.inc', $name))>1
)
alert("조건에 부합되는 파일을 업로드 하시길바랍니다.");
copy($tmp_name, $upload_dir.$targetname);
$response = array_merge($_POST, array('success'=>true, 'fileName'=>$fileName , 'rfile'=>$targetname));
echo htmlspecialchars(json_encode($response), ENT_NOQUOTES);
}
}
/*파일 업로드 시작*/
$ckfile = $_FILES['qqfile']['name'];
$ip= $_SERVER["REMOTE_ADDR"] ;
$pub_date = date("Y-m-d G:i:s");
$tgname = date("YmdGis");
if ($ckfile)
{
$type = $_FILES['qqfile']['type'];
$rname = $_FILES['qqfile']['name'];
$rname = str_replace("'","",$rname);
$rname = str_replace("\"","",$rname);
$pinfo=pathinfo($_FILES['qqfile']["name"]);
$ext = $pinfo[extension];
$size = $_FILES['qqfile']['size'];
$error = $_FILES['qqfile']['error'];
$tmp_name = $_FILES['qqfile']['tmp_name'];
$targetname = $tgname.".".$ext;
$upload_dir = "upload/";
uploadfile($type,$rname,$ext,$size,$error,$tmp_name,$targetname,$upload_dir);
}
/*파일업로드 종료*/
?>