【问题标题】:Remove file extension on file upload在文件上传时删除文件扩展名
【发布时间】:2011-12-02 12:50:15
【问题描述】:

我现在正在为一个网站编写代码,该网站上传图片,然后显示它们的画廊风格。我希望将图像的文件名作为图像的名称输入到站点的数据库中。但是,仅使用 $_FILES['images']['name']; 会给我提供文件名,但最后附加了文件扩展名。如何删除文件扩展名以便我可以单独使用文件名?

【问题讨论】:

  • 您认为扩展名的哪一部分?第一个点之前的所有内容? some.name.tar.zip 怎么样?这是一个有效的名称。是.zip 扩展名和some.name.tar 名称还是some 名称和name.tar.zip 扩展名?实际上,您应该在名称中包含扩展名,这样当您如何命名某人时,他们可以识别文件类型。

标签: php file-upload upload


【解决方案1】:

只需使用 preg_replace:

$name = preg_replace('/(.+)\.\w+$/U', $_FILES['images']['name'], '$1');

【讨论】:

    【解决方案2】:

    您可以使用rename 删除扩展名:

    ->http://www.php.net/manual/en/function.rename.php

    【讨论】:

      【解决方案3】:

      正如我上面的评论所暗示的,这取决于您认为文件名中的名称以及扩展名是什么。

      直到最后一个点:

      $filename = 'some.file.name.zip';
      $name = substr($filename, 0, strrpos($filename, '.'));
      

      直到第一个点:

      $filename = 'some.file.name.zip';
      $name = substr($filename, 0, strpos($filename, '.'));
      

      它们看起来一样,但第一个从字符串末尾查找第一个点,从字符串开头查找第二个点。

      【讨论】:

        【解决方案4】:

        您可以使用pathinfo() 函数(docs)。

        $example  = "my_file.jpeg";
        $filename = pathinfo($example, PATHINFO_FILENAME);
        echo $filename; // my_file
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-02-23
          • 2012-05-12
          • 1970-01-01
          • 1970-01-01
          • 2015-10-16
          • 1970-01-01
          • 1970-01-01
          • 2012-06-29
          相关资源
          最近更新 更多