input file 업로드가 크롬에서는 되고 네이버앱에서는 안되요 ㅠ

input file 업로드가 크롬에서는 되고 네이버앱에서는 안되요 ㅠ

QA

input file 업로드가 크롬에서는 되고 네이버앱에서는 안되요 ㅠ

본문

 

이미지 업로드 기능을 만들어놨습니다.

 

예를들어 이미지를 4장을 선택하고, 그 다음 3장을 선택해요.

 

그리고 총 7장을 업로드합니다.

 

그러면 크롬에서는 7장이 다 업로드 됩니다.

 

근데 네이버 모바일앱에서는 뒤에꺼 3장만 업로드되네요....

 

파일업로드 소스입니다.


$total = count($_FILES["fileToUpload"]["name"]);
//업로드된 파일 수만큼 반복문을 진행한다.
for( $i=0 ; $i < $total ; $i++ ) {
        //파일이 저장될 경로 및 확장자명이 포함된 파일 이름을 저장한다. 예) D:/test.txt
        $target_file = $target_dir .'/'. $mb_id.basename($_FILES["fileToUpload"]["name"][$i]);
        //파일의 확장자명을 저장한다.
        //strtolower를 사용하면 소문자로만 저장. strtoupper를 사용하면 대문자로만 저장.
        $ext = pathinfo($target_file,PATHINFO_EXTENSION);
        //파일의 이름을 저장한다.
        //확장자가 대문자인데, $ext에 담긴 확장자는 소문자라면 확장자가 제거 되지 않은 이름이 저장되게 된다.
        $filename = basename($target_file,".$ext");
        //중복된 파일이 존재할 경우 1을 붙여줄 것이다. 예)D:/test(1).txt
        $num = 1;
        //같은 확장자 및 같은 이름을 지닌 파일이 이미 존재할경우
        if (file_exists($target_file)) {
            //같은 확장자 및 같은 이름을 지닌 파일이 없을때까지 반복
            while(file_exists($target_file)) {
                //같은 이름의 파일이 있다면 파일명을 변경해준다. 예) test에서 test(1)로 여기서 1은 $num에 저장된 값
                $filename2 = $filename."($num)";
                //변경한 파일명을 저장해준다. 예) D:/test.txt 에서 D:/test(1).txt 로
                $target_file = $target_dir.$filename2.".$ext";
                //같은 이름의 파일이 존재하는한 num은 1씩 증가하며, 파일의 이름을 변경해주는데 쓰인다.
                $num++;
            }
        }
        if(move_uploaded_file($_FILES["fileToUpload"]["tmp_name"][$i], $target_file)) {
            //파일이 업로드에 성공하였을 때
            $size = filesize($target_file);
            if ($size > pow(1024,3)) {
                $size = round($size/(pow(1024,3)),2)."GB";
            }
            if ($size > pow(1024,2)) {
                $size = round($size/(pow(1024,2)),2)."MB";
            }
            if ($size > pow(1024,1)) {
                $size = round($size/(pow(1024,1)),2)."KB";
            }
        }
}
 

이 질문에 댓글 쓰기 :

답변 1

fileToUpload 함수가 배열형태라면 브라우저상태에따라 후에 덮여지는 이미지를 제일 우선순위로 둡니다.

모바일에서 4장 첨부후 3장 첨부 한다면 브라우저사정(아마 설정상의 문제일것으로 판단됨)에 따라 나중 3장을 submit하는 순간에 최종 데이터로 판단하여 업로드할것입니다.

 

그래서 다중파일을 업로드할때는 임시적으로 파일을 따로 따로 관리하는 방식으로 처리한다면 문제가 해결될것 같네요.

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

회원로그인

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