2012-12-01 3 views
1

그래서 저는 .gif 업로드 웹 사이트를 만드는 과정에 있으며, 이것은 "upload_file.php"에 대한 제 코드입니다.내 웹 사이트에 업로드되는 이미지에 임의의 이름을 어떻게 추가 할 수 있습니까?

 <?php 
    $allowedExts = array("jpg", "jpeg", "gif", "png"); 
    $extension = end(explode(".", $_FILES["file"]["name"])); 
    if ((($_FILES["file"]["type"] == "image/gif")) 
    && ($_FILES["file"]["size"] < 5242880) 
    && in_array($extension, $allowedExts)) 
    { 
    if ($_FILES["file"]["error"] > 0) 
    { 
    echo "Return Code: " . $_FILES["file"]["error"] . "<br>"; 
    } 
    else 
    { 
    echo "Upload: " . $_FILES["file"]["name"] . "<br>"; 
    echo "Type: " . $_FILES["file"]["type"] . "<br>"; 
    echo "Size: " . ($_FILES["file"]["size"]/1024) . " kB<br>"; 
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>"; 

    if (file_exists("i/" . $_FILES["file"]["name"])) 
     { 
     echo $_FILES["file"]["name"] . " already exists. "; 
     } 
    else 
     { 
     move_uploaded_file($_FILES["file"]["tmp_name"], 
     "i/" . $_FILES["file"]["name"]); 
     echo "Stored in: " . "i/" . $_FILES["file"]["name"]; 
     } 
    } 
    } 
else 
    { 
    echo "Invalid file"; 
    } 
?> 

임의의 이미지 이름을 어떻게 추가 할 수 있습니까? # 0-9의 6-8 자리가 바람직합니다. 그런 식으로 이미지 이름은 대문자에만 국한되지 않고 간단합니다. PHP를 배우기 때문에 가능한 한 구체적인 지시를 따르십시오. 이것이 제가이 웹 사이트를 만드는 주된 이유 중 하나입니다.

P. 보너스는 파일 정보가 표시된 페이지가없는 이미지로 곧바로 리디렉션하는 방법을 알려줄 수있는 경우에 도움이됩니다.

+1

http://php.net/manual/en/function.uniqid.php. 질문은 여기에 있습니다. http://stackoverflow.com/questions/12986070/php-fileuploader-basenam – ryanc1256

+0

죄송합니다.하지만 그건 도움이되지 않습니다. –

답변

1

업로드 시간을 기준으로 임의의 이름을 지정하는 것은 어떻습니까? 내가 쓴 순간 일 것입니다 무엇

20121130184908.jpeg 

그 무거운 업로드가있는 경우 2012년 11월 30일 18시 49분 8초

는, 아마도 밀리 세컨드도 포함되어야로 (UTC-0800) .

+0

하지만 rondom 번호를 생성하는 방법이 있습니까? 나는 슈퍼 긴 번호 싶지 않아요. –

0

은 파일 이름을 생성하는 데 ** 난 당신이

1

을 필요로 무엇을 줄 것이라고 생각 uniqid()을 사용하여이 함수를 호출 할 수

function makeFileName($size=6, $path="/", $extension=".gif"){ 
    //if you give a path, don't forget the slash at end 

    $root = $_SERVER["DOCUMENT_ROOT"];   
    $name = rand(0, str_repeat(9, $size)); 
    $name = $root.$path.str_pad($name, 8, 0, STR_PAD_LEFT).$extension; 
    while(is_file($name)){ 
     makeFileName(); 
    } 
    return $path.$name; 
} 
echo makeFileName(); 

//makeFileName(6, ".png") Will create a png file name with 6 digits 

편집 :

move_uploaded_file($_FILES["file"]["tmp_name"], makeFileName(6, "/your/dir/", ".png")); 
유로 볼 수
+0

작동하는 것처럼 보이지만 그 이름을 파일에 첨부하려면 어떻게해야합니까? 방금 도착했습니다 : [http://imgur.com/0yiHw](http://imgur.com/0yiHw) –

+0

@KenTurner 문제가 해결되면 답변을 수락하여 스레드를 닫으십시오. 감사 –

관련 문제