PHP文件上传和tmp文件

时间:2011-11-04 18:05:04

标签: php

所以我正在创建一个处理从表单上传文件的类。我遇到的问题是在将文件从临时文件重命名为新文件时。我的类使用户能够手动指定文件名,或使用与上载文件名相同的名称。现在,如果我手动设置名称,我需要知道要添加到文件的扩展名。由于临时文件夹不包含扩展名,而我不希望在$file['uploadedfile']['name']期间爆炸,我建议做什么?

我想我最初的问题是:有没有办法配置服务器/ php,因此当文件放在temp文件夹中时它不会重命名文件,所以我可以使用{{ 1}}用于扩展名。

2 个答案:

答案 0 :(得分:0)

您无法控制临时名称,但您可以使用$ _FILES ['file'] ['name']来获取原始扩展名,因为它包含用户计算机中文件的名称。您可以将该文件名传递给pathinfo()。当然只是因为扩展是一回事,并不意味着文件属于那种类型。

var_dump(pathinfo('testfile.png'));

array(4) {
  ["dirname"]=>
  string(1) "."
  ["basename"]=>
  string(12) "testfile.png"
  ["extension"]=>
  string(3) "png"
  ["filename"]=>
  string(8) "testfile"
}

答案 1 :(得分:0)

  

有没有办法配置server / php,因此当文件放在temp文件夹中时不会重命名该文件

没有

  

我建议做什么?

使用原始扩展程序,键入的扩展名或$_FILES[x]['name']中的扩展名。这有什么问题?