【问题标题】:Create unique id for uploaded image为上传的图片创建唯一 ID
【发布时间】:2015-06-21 21:00:03
【问题描述】:

如何使用此代码为上传的文件创建唯一 ID。

代码上传图片,但当您使用 iPhone 上传时,所有图片都以 image.jpg 格式提供。所以我需要一个函数来重命名现有文件,或者只是为每个文件创建唯一的 id。

<form enctype="multipart/form-data" action="" method="POST"> Please choose a file: <input name="uploaded" type="file" /><br /> <input type="submit" value="Upload" /> </form>
<?php 
function findexts ($filename)  {  $filename = strtolower($filename) ;  $exts = split("[/\\.]", $filename) ;  $n = count($exts)-1;  $exts = $exts[$n];  return $exts;  }   

$ext = findexts ($_FILES['uploaded']['name']) ; 


$ran = rand () ; 
$ran2 = $ran.".";  
$target = "uploads/";

if(file_exists("uploads/$filename")) unlink("uploads/$filename");move_uploaded_file($target, "uploads/$filename");

if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))  { echo "The file has been uploaded as ".$ran2.$ext; }  else { echo "Sorry, there was a problem uploading your file."; } 
$target = $target . $ran2.$ext;

【问题讨论】:

    标签: php file file-upload ftp file-rename


    【解决方案1】:

    您可以使用uniqid() 函数获取唯一的图像名称。它有两个参数。第一:前缀,第二:更多熵。

    在此处查看详细信息:http://php.net/manual/en/function.uniqid.php

     <form enctype="multipart/form-data" action="" method="POST"> Please choose a file: <input name="uploaded" type="file" /><br /> <input type="submit" value="Upload" /> </form>
        <?php 
        function findexts ($filename)  {  
           $filename = strtolower($filename) ;  
           $exts = split("[/\\.]", $filename) ;  
           $n = count($exts)-1;  
           $exts = $exts[$n];  return $exts;  
        }   
    
        $ext = findexts ($_FILES['uploaded']['name']) ; 
    
        //unique image
        $new_image_name = uniqid("IMG_",false);
        $final_name = $new_image_name.".".$ext;
    
        //Target directory
        $target = "uploads/";
    
        if(file_exists("uploads/$final_name")) unlink("uploads/$final_name");move_uploaded_file($target,"uploads/$final_name");
    
        if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))  { echo "The file has been uploaded as ".$final_name; }  else { echo "Sorry, there was a problem uploading your file."; } 
        $target = $target . $final_name;
    

    【讨论】:

    猜你喜欢
    • 2015-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    • 1970-01-01
    • 1970-01-01
    • 2012-09-28
    • 2012-03-26
    相关资源
    最近更新 更多