/data/editor 에서 이름이 같은 파일을 찾아 확장자 통일 시키기

/data/editor 에서 이름이 같은 파일을 찾아 확장자 통일 시키기

QA

/data/editor 에서 이름이 같은 파일을 찾아 확장자 통일 시키기

본문

에디터에 들어간 PNG 파일이 있는데요

 

data 에 있는 파일들을 다 내려받아서 파일 압축?을 시키고 다시 업로드를 하고 보니

 

파일명이 동일한 PNG(원본) 과 png(압축된 이미지) 이렇게 중복된 파일이 생겼습니다;;

ex) aaa.png aaa.PNG

 

이걸 php or sql 로

 

파일명이 동일한 파일들만 골라내서

png 인 파일의 확장자를 PNG 로 바꿔서 원본에 덮어씌울 수 있는 방법이 있을까요??


구글링 해보니 특정 확장자 파일 모두 제거, 업로스시 확장자 변경 이런 방법들은 있는데

 

기존에 서버에 있는 파일들을 찾아내서 확장자를 변환해주는 건 안보이더라구요;;

 

개발자가 아니어서 검색하기 쉬운 용어들을 몰라서 그럴 수도 있겠지만...

 

이걸 파일질라에서 파일명 동일한 애들 찾아서 하나하나 수정해주는 방법 뿐인건지....ㅠㅠ

이 질문에 댓글 쓰기 :

답변 4

단순 파일명 변경하실거면..

 

그냥 간단하게 예를들어보면



$dir = opendir('./img');
while ($file = readdir($dir)) {
    $ext = '';
    $result = false;
    $file_name = substr($file, 0, -4);
    $ext = substr($file, -4);
    if ($ext = '.png') {
        rename('./img/'.$file_name.$ext,'./img/'.$file_name.'.PNG');
        echo './img/'.$file_name.$ext.' -> ./img/'.$file_name.'.PNG';
    }
}

이런식으로 할수있을거같긴한데, 

아마 경로나 이런거 맞추고 좀 맞춰서 하시면 될거같긴해요 ㅎ

답변감사드립니다!

파일명은 그대로 두되, 확장자를 png 에서 PNG 로 바꿔야하는 상황입니다;;ㅠㅠㅠ

파일명이 동일한데 확장자가 2개(대문자 확장자, 소문자 확장자)인 경우라서요ㅠㅠ

aaaa.png(.jpg) 를 aaaa.PNG(.JPG) 로 변경가능한지... 가능하다면 어떻게 해야하는지가 핵심입니다ㅠㅠㅠㅠ

다시 한번 도움주셔서 감사드립니다!

어떤 문제가 생겨서 이렇게 하시려는 것인지 모르겠습니다.

서버(리눅스)에서는 대소문자가 다르면 다른 파일입니다.

게시판 내용(에디터로 이미지가 들어 있는)에 포함된 이미지가 png면 서버에 png가 있어야

하고 PNG면 PNG가 있어야 합니다.

이게 바뀌면 

게시판 내용을 볼 때 이미지가 나오지 않습니다.

답변감사드립니다! 말씀주신 내용을 알고 있는 상황입니다ㅠㅠ

음... 이미지 용량을 줄이려고 data/editor 에 모든 이미지들을 내려받고 이미지용량 압축하고 서버에 다시 업로드를 했는데 JPG, PNG가 원본인 이미지들이 있더라구요;;

그래서 덮어씌워지지 않고 aaa.JPG, aaa.PNG 원본이 있고, 용량압축된 aaa.jpg, aaa.png 파일이 따로 또 업로드가 돼서

이 상황이라... aaa.jpg(용량 압축된 파일)의 확장자를 aaa.JPG으로 확장자를 변경하고 싶은데

이게 수정할게 워낙 많다보니... 지금은 ftp 접속해서 년월 디렉터리 들어가서 파일명이 중복인 애들을 찾아서 확장자가 소문자인 애들을 대문자로 하나하나 수정하고 덮어씌우고 있어서요;;

이걸 php 로 /data/editor/년월 디렉터리를 조회해서 파일명이 중복인 애들만 골라 소문자 확장자를 대문자 확장자로 한번에 바꿀 수 있는지가 궁금했습니다!!

다시 한번 답변주셔서 감사드립니다!

앗 ㅋㅋㅋ 제가 말씀드리는게 전달이 잘 안되는 것 같아요;;

원본이 PNG, JPG 대문자로 된 확장자가 원본인 상태이고, db에도 PNG, JPG 로 들어가있어요ㅠ

그래서 동일한 파일명이 같고, 확장자가 png, PNG 또는 jpg, JPG 둘다 있는 경우 확장자를 png -> PNG, jpg -> JPG 로 바꿔줘야하는 상황입니다;;

이리저리 구글링해서

data/editor 안에 년월 별 디렉터리들을 다 조회해서 파일명이 중복인 것들을 추려내기는 했는데

남아있는 작업이... ㄷㄷ한 상황이네요;; 제가 할 수 있을지...ㅋㅋㅋ;;

[추가 작업]
파일명 중복 추려낸거에서 확장자를 비교해서 a.png a.JPG / a.jpg a.PNG 이렇게 맞지 않는 경우는 패스하고, a.png a.PNG / a.jpg a.JPG 인 경우만 뽑아내서 png, jpg 파일들의 소문자 확장자를 PNG, JPG 대문자 확장자로 바꿔주고, 이미 PNG, JPG 파일은 있을 거라서 해당 파일 있다면 덮어씌워야하는....;;;

중복 추려낸건 했지만... 추가로 해야하는 작업 부분이 php 가능한건가요??

일단 이미 파일질라에서 각 디렉터리 들어가서 png -> PNG, jpg -> JPG 로 다 바꾸긴했지만;;

시간이 생겨서 구현가능한 작업인지 해보고 있어요...

알려주신 방법으로 sql로 db에서 PNG 를 png 로 업데이트치고
파일명이 중복이면서 확장자가 PNG, JPG 파일들은 삭제시켜도 되긴 하겠네요...!!

말은 쉽지만 개발 로직은 어렵네요.... 답변감사드려요!!

서버에 a.png가 있었는데

어떤 이유로 다운로드 받아서 업로드 할 때 a.PNG업로드 하는 바람에

 

서버에는 a.png, a.PNG가 중복?으로 있게 되고

 

게시판 에디터에서 사용하는 것은 a.png에서 a.PNG로 변경해 주어야 하는 거군요.

==

이게 맞다면

업로드한 파일(a.PNG)를 a.png로 이름만 바꾸면 되는 거군요.

 

php로 작업하면

작업하 디텍로리 리스트-loop {

  디렉토리를 읽고 loop를 돌면서 {

   if( 파일 확장자가 PNG면 , 확장자 png가 존재하는지 ) 이름 변경

 }

}

이런 식이 되겠네요.

엇... 맞아요... 말씀하신 것의 반대지만요;;

원본이 PNG 이고, 업로드한 파일이 png 입니다... 그래서 png 를 PNG 로 바꿔줘야 하는데

이게 우선 저의 상황에서 로직을 글로 쓴다면...

1. /data/editor/년월  반복문으로 년월 디렉터리를 읽는다.
2. 각각의 디렉터리 안에 파일명만 중복(확장자는 제외)인 파일들을 찾는다. ( 확장자가 달라도 파일명만 같으면 출력 )
3. 중복파일을 찾았다면 동일한 파일명의 파일이 2개씩 있다는 얘기인데, 그 2개의 파일 확장자가 png, PNG 이거나 jpg, JPG 인 파일들만 다시 솎아낸다. ( png JPG 인 경우도 있고, jpg PNG 경우도 있는 상황입니다... 그래서 한번 더 거르는게 필요합니다ㅠㅠ)
4. png -> PNG / jpg -> JPG 로 확장자를 변경한다.

이렇게 될 것 같은데요;;

지금 제가 구글링으로 구현한건 2번까지에요;;

3번을 당최 어떻게 로직을 짜야할지 파일명이 동일한 애들끼리 객체배열로 넣어서

$arr1['upper'] = 대문자 확장자인 파일
$arr1['lower'] = 소문자 확장자인 파일

이렇게 넣어서 저 2개가 같은지 lower 나 upper 를 써서 문자열 체크하면 가능할 것 같고... 비교해서 같은 경우에만 소문자 확장자을 대문자 확장자로 rename( 폭주죽님이 알려주신 방법 )시키면 되지 않을까 싶은데... 개발용어도 잘 모르다보니 구글링만으로는 빡세네요;;(근데 재밌어요...)ㅋㅋㅋㅋ

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

회원로그인

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