사진 업로드 기능

사진 업로드 기능

QA

사진 업로드 기능

본문

안녕하세요!

지금 따로 사진 업로드 기능을 만들고 있는데, 파일이 저장될 때 파일명을 파일을 올린 사용자 아이디로 하려는데 어떻게 하는지 모르겠어서 고수분들께 질문하려고 합니다.

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); 이렇게 했더니 Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting '-' or identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in D:\xampp\sign_up_ex\upload_ok.php on line 36 이 오류가 납니다....

move_uploaded_file( $_FILES['myfile']['tmp_name'], $uploads_dir."/".$_SESSION['userid'].".".$ext);

또는

move_uploaded_file( $_FILES['myfile']['tmp_name'], "{$uploads_dir}/{$_SESSION['userid']}.{$ext}");

한가지만 더 여쭤봐도 괜찮을까요...
만약 사진 업로드를 했을 때 사용자 아이디로 된 사진 이름이 있다면 이미 있는걸 삭제하고. 새로 업로드한거로 덮어씌울려면 어떻게 해야할까요...?

답변을 작성하시기 전에 로그인 해주세요.
전체 123,663 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT