2016-08-19 2 views
0

업로드 한 이미지의 이름을 변경하려고합니다. 고유 한 이름으로 지정하고 싶습니다.업로드 후 고유 한 파일 이름

$upload_image = $target_path.basename($fileName); 

$upload_image = $target_path.basename(uniqid($fileName, rand())); 

하지만이 제공

에 :

http://pastebin.com/qQmC256A

나는이 같은 파일을 편집하려고 :

나는이 클래스 (인터넷에서 발견)가 확장명없는 파일 일뿐입니다.

+0

그리고? 나 한테 효과가있는 것 같은데? –

+0

예, 작동 중입니다. 하지만 확장 기능이없는 파일 만 제공합니다. 이미지의 확장자를 확인하려면 어떻게해야합니까? – tweetok

답변

0

그 밖의 다른 조치는 무엇입니까? 당신은 파일 이름의 "중간"의 일환으로 파일의 확장자를 설정하기 때문에, 당신은 확장을하지 않는

php > echo uniqid('kittens.jpg', rand()); 
kittens.jpg57b72004c1a470.87520799 
php > echo basename(uniqid('kittens.jpg', rand())); 
kittens.jpg57b7201cdce2e9.40812361 

: uniqid 같은 무언가를 생성합니다.

아마도 이런 일이 더 잘 작동합니다 : 당신이 정확하게 당신이 필요로하는 것을 포함 $file_ext라는 이름의 변수가있다 제공하는 라이브러리의 라인 (26)에

$info = pathinfo($file); 
$file = $path . $info['filename'] . uniqid() . $info['extension']; 
+0

감사합니다. 방금 "."을 추가해야했습니다. uniqid() 이후. – tweetok

0

. 그냥 $upload_image에 CONCAT 그래서 라인 (32)이된다 :

$upload_image = $target_path.basename(uniqid($fileName, rand())).$file_ext;

here을 언급 한 바와 같이,이 방법으로 확장을 얻을 것이라고하더라도, 경우 : $path = $_FILES['image']['name']; $file_ext = pathinfo($path, PATHINFO_EXTENSION);

파일 이름이 들어있는 경우 때문에 예 : test.tar.gz 확장자는 .gz입니다.

이 방법을 사용하려면 22-24 행을 위 코드로 바꿀 수 있습니다.