【问题标题】:I want remove file extension or rename the file extension before uploaded in php codeigniter我想在上传到 php codeigniter 之前删除文件扩展名或重命名文件扩展名
【发布时间】:2017-02-23 18:28:02
【问题描述】:

当用户选择文件时,服务器端的文件扩展名将被删除或重命名并使用 php codeigniter 库将其上传到服务器

【问题讨论】:

    标签: file codeigniter upload rename


    【解决方案1】:

    这应该会删除您的文件扩展名

    <?php 
      $var = "testfile.php"; 
      $explode = explode( '.', $var ); 
      array_pop( $explode); 
      $var = implode( '.', $explode ); 
      var_dump( $var );
    

    至于上传,您需要阅读文件上传手册

    http://www.codeigniter.com/user_guide/libraries/file_uploading.html

    【讨论】:

    • 是的,但它如何使用 $this->upload->do_upload() 将文件上传到服务器上......
    • 用户是否正在向您的服务器上传文件?
    • $this->upload->do_upload() 这将在服务器上上传文件,但我希望文件扩展名必须更改并且应该上传...
    • 在这种情况下,请阅读我提供的链接,您会在其中找到所需的所有信息。没有人会为您编写所有代码。
    【解决方案2】:

    可以使用以下代码更改文件名:

    $your_given_name = time().rand().$_FILES["userfiles"]['name'];
    $config['file_name'] = $your_given_name;
    

    您可以使用更改扩展名:

     if ($this->upload->do_upload('file_name')) {
              $file_data=$this->upload->data();
              $new_name_by_you='anything'.$file_data['file_ext'];
              $new_path=$file_data['file_path'].$new_name_by_you;
              rename($file_data['full_path'],  $new_path);
        }
    

    rename() 是一个 php 内置函数。详情请访问http://php.net/manual/en/function.rename.php

    【讨论】:

      【解决方案3】:

      我最近遇到了同样的问题,发现即使你在代码点火器中指定了一个文件名,它也会附加文件扩展名,这真的很烦人。这是我不想要的。

      Blinkydamo 的链接没有帮助,因为那是我首先关注的链接并且没有提到这个困境,尽管它确实表明通过 Code Igniter 不可能直接通过忽略答案。

      我没有尝试过 md asif rahman 的方法,但是看起来不错。

      或者,您可以忘记使用 Code Igniter 的上传功能,而使用 PHP 标准功能,这就是我所做的:

      move_uploaded_file($_FILES['imageFile']['tmp_name'], '/path/'.$filename);
      

      其中 $filename 是包含扩展名的文件的确切名称,因此如果没有指定 - 它不会有一个。

      【讨论】:

        【解决方案4】:

        很简单

        更改代码 库/Upload.php

        public function set_filename($path, $filename)
        {
            if ($this->encrypt_name === TRUE)
            {
                $filename = md5(uniqid(mt_rand()));
            }
        
            if ($this->overwrite === TRUE OR ! file_exists($path.$filename))
            {
                return $filename;
            }
        
        
            $filename = str_replace($this->file_ext, '', $filename);
            $new_filename = '';
            for ($i = 1; $i < $this->max_filename_increment; $i++)
            {
                if ( ! file_exists($path.$filename.$i))
                {
                    $new_filename = $filename.$i;
                    break;
                }
            }
        
            if ($new_filename === '')
            {
                $this->set_error('upload_bad_filename', 'debug');
                return FALSE;
            }
            else
            {
                return $new_filename;
            }
        }
        

        【讨论】:

          猜你喜欢
          • 2011-12-02
          • 1970-01-01
          • 1970-01-01
          • 2015-02-18
          • 2018-10-22
          • 2017-04-22
          • 2012-06-29
          • 1970-01-01
          • 2014-09-19
          相关资源
          最近更新 更多