질문Q #13878
ajaxsubmit 통해서 파일 업로드 질문 있습니다.
sjalove2016-06-17 12:37:36

 

<form id="form" name="form" onsubmit="return form_submit(this);" method="POST" enctype="multipart/form-data"> 
<input type="file" name="upload" id="upload"> 
</form>
 
 
<script language="javascript" src= <?php G5_URL ?>"/js/jquery.form.min.js"></script> 
<script>
$('#upload').on('change', function(){
		var data = new FormData();
		var exec_url = './ajax_process.php';
		var options = {
			url:exec_url,
			type:'POST',
			dataType:'json',
			success : function(r) {
				if(r.success) {
 
				}
				else {
					alert(r.msg);
				}
			}
		}
		$('#form').ajaxSubmit(options);
	});
</script>
 
 
====ajax_process.php====
<?php
include "./_common.php"; 
print_r2($_FILES); // 정상적으로 출력이 됩니다.,
 
var_dump(is_uploaded_file($_FILES['upload']['name'])); // 문제는 여기 인데요. 이렇게 하면 "false"로 출력되네요 ㅠ,ㅠ
 
$mb_id = "test";
$mb_dir = G5_URL.'/test'; 
$dest_path = $mb_dir.'/'.$mb_id.'.gif'; 
move_uploaded_file($_FILES['upload']['name'], $dest_path); // 해당 경로에 파일 업로드도 안되네요 ㅠ,ㅠ 도대체 무엇이 문제일까요?? 
?>

 

 

 

<input type="file" name="upload" id="upload">  <-- 여기 버튼을 클릭하게 되면

 

jquery change 이벤트 통해 자동 파일 업로드가 되는 과정입니다..

답변4
#1 kaido 2016-06-17 12:49:59
ajax 없이 그냥 submit 때려도 그런가요?
#2 sjalove 2016-06-17 12:53:55
아직 안해봤는데요 밥먹고 돌아가서 한번 테스트 해보겠습니다
#3 sjalove 2016-06-17 13:29:29
kaido > 그냥 submit로 때려도 이렇게 나옵니다 ㅠ,ㅠ
#4 kaido 2016-06-17 14:10:26

뭔가 이상해서 is_uploaded_file() 찾아보니 잘못 사용되신듯 합니다

http://php.net/manual/kr/function.is-uploaded-file.php

 

그리고 해당 파일업로드 하는 폴더에 권한도 체크해 보세요.

 

ajax upload는 일반 submit 업로드가 가능하면 로직에서는 따로 바꿔주는것 없이 잘 됩니다.