【问题标题】:How to change name of uploaded file without changing extension如何在不更改扩展名的情况下更改上传文件的名称
【发布时间】:2011-09-18 13:13:59
【问题描述】:

我想将上传文件的名称更改为 md5(file_name).ext,其中 ext 是上传文件的扩展名。有什么功能可以帮我做到吗?

【问题讨论】:

    标签: php file function upload


    【解决方案1】:
       <?php
        $filename   = $_FILES['file']['name'];
        $extension  = pathinfo($filename, PATHINFO_EXTENSION);
        $new        = rand(0000,9999);
        $newfilename=$new.$filename.$extension;
    
        if (move_uploaded_file($_FILES['file']['tmp_name'],$newfilename)) 
        {
          //advanced code 
        }
        ?>
    

    【讨论】:

      【解决方案2】:

      这个作品

      <?php
      
      // Your file name you are uploading 
      $file_name = $HTTP_POST_FILES['ufile']['name'];
      
      // random 4 digit to add to our file name 
      // some people use date and time in stead of random digit 
      $random_digit=rand(0000,9999);
      
      //combine random digit to you file name to create new file name
      //use dot (.) to combile these two variables
      
      $new_file_name=$random_digit.$file_name;
      
      //set where you want to store files
      //in this example we keep file in folder upload 
      //$new_file_name = new upload file name
      //for example upload file name cartoon.gif . $path will be upload/cartoon.gif
      $path= "upload/".$new_file_name;
      if($ufile !=none)
      {
      if(copy($HTTP_POST_FILES['ufile']['tmp_name'], $path))
      {
      echo "Successful<BR/>"; 
      
      //$new_file_name = new file name
      //$HTTP_POST_FILES['ufile']['size'] = file size
      //$HTTP_POST_FILES['ufile']['type'] = type of file
      echo "File Name :".$new_file_name."<BR/>"; 
      echo "File Size :".$HTTP_POST_FILES['ufile']['size']."<BR/>"; 
      echo "File Type :".$HTTP_POST_FILES['ufile']['type']."<BR/>"; 
      }
      else
      {
      echo "Error";
      }
      }
      ?>
      

      【讨论】:

        【解决方案3】:
        $filename  = basename($_FILES['file']['name']);
        $extension = pathinfo($filename, PATHINFO_EXTENSION);
        $new       = md5($filename).'.'.$extension;
        
        if (move_uploaded_file($_FILES['file']['tmp_name'], "/path/{$new}")) 
        {
           // other code
        }
        

        【讨论】:

          【解决方案4】:

          找到下面的 php 代码以获取文件扩展名和更改文件名

          <?php
          if(isset($_FILES['upload_Image']['name']) && $_FILES['upload_Image']['name']!=='') {
              $ext = substr($_FILES['upload_Image']['name'], strpos($_FILES['upload_Image']['name'],'.'), strlen($_FILES['upload_Image']['name'])-1);     
              $imageName = time().$ext;
              $normalDestination = "Photos/Orignal/" . $imageName;
              move_uploaded_file($_FILES['upload_Image']['tmp_name'], $normalDestination);
          }
          ?>
          

          【讨论】:

            【解决方案5】:

            使用此功能将文件名改为md5,扩展名相同

            function convert_filename_to_md5($filename) { 
                $filename_parts = explode('.',$filename);
                $count = count($filename_parts);
                if($count> 1) {
                    $ext = $filename_parts[$count-1];
                    unset($filename_parts[$count-1]);
                    $filename_to_md5 =  implode('.',$filename_parts);
                    $newName = md5($filename_to_md5). '.' . $ext ;
                } else {
                    $newName = md5($filename);
                }        
                return $newName;
            }
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2013-05-20
              • 2011-05-26
              • 2020-06-04
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-10-13
              相关资源
              最近更新 更多