사진 업로드 기능
본문
안녕하세요!
지금 따로 사진 업로드 기능을 만들고 있는데, 파일이 저장될 때 파일명을 파일을 올린 사용자 아이디로 하려는데 어떻게 하는지 모르겠어서 고수분들께 질문하려고 합니다.
upload.php
<code>
<script src="http://madalla.kr/js/jquery-1.8.3.min.js"></script>
<script type="text/javascript">
$(function() {
$("#imgView").on('change', function(){
readURL(this);
});
});
function readURL(input) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
$('#View').attr('src', e.target.result);
}
reader.readAsDataURL(input.files[0]);
}
}
</script>
<?php
?>
<form action="upload_ok.php" enctype='multipart/form-data' method='post'>
<input id="imgView" type='file' name='myfile'>
<img id="View" style="width: 100px; height: 100px;" src="#" alt="이미지 미리보기" />
<button type="submit">보내기</button>
</form>
</code>
upload_ok.php
<code>
<?php
include "db.php";
// 설정
$uploads_dir = './uploads';
$allowed_ext = array('jpg','jpeg','png','gif');
// 변수 정리
$error = $_FILES['myfile']['error'];
$name = $_FILES['myfile']['name'];
$ext = explode('.',$name);
$ext = strtolower(array_pop($ext));
// 오류 확인
if( $error != UPLOAD_ERR_OK ) {
switch( $error ) {
case UPLOAD_ERR_INI_SIZE:
case UPLOAD_ERR_FORM_SIZE:
echo "파일이 너무 큽니다. ($error)";
break;
case UPLOAD_ERR_NO_FILE:
echo "파일이 첨부되지 않았습니다. ($error)";
break;
default:
echo "파일이 제대로 업로드되지 않았습니다. ($error)";
}
exit;
}
// 확장자 확인
if( !in_array($ext, $allowed_ext) ) {
echo "허용되지 않는 확장자입니다.";
exit;
}
// 파일 이동
move_uploaded_file( $_FILES['myfile']['tmp_name'], "$uploads_dir/$name");
// 파일 정보 출력
echo "<h2>파일 정보</h2>
<ul>
<li>파일명: $name</li>
<li>확장자: $ext</li>
<li>파일형식: {$_FILES['myfile']['type']}</li>
<li>파일크기: {$_FILES['myfile']['size']} 바이트</li>
</ul>";
?>
</code>
감사합니다!
답변 2
// 파일 이동
move_uploaded_file( $_FILES['myfile']['tmp_name'], "$uploads_dir/회원아이디".$ext);
move_uploaded_file( $_FILES['myfile']['tmp_name'], $uploads_dir."/".$_SESSION['userid'].".".$ext);
또는
move_uploaded_file( $_FILES['myfile']['tmp_name'], "{$uploads_dir}/{$_SESSION['userid']}.{$ext}");