TMP中上传的图片没有文件扩展名?

时间:2011-01-14 16:13:03

标签: php upload

请,

上传图片后,文件仍然在TMP文件夹中,当我回显:

$_FILES['file']['tmp_name']

我得到了,例如:

/tmp/phpZnmIfT

所以上传的图片没有扩展名?! 这是“正常”还是某些Php GD配置丢失了?

提前致谢

5 个答案:

答案 0 :(得分:4)

PHP使用临时名称存储文件,这就是您所看到的。毕竟,两个或更多人可能会上传相同的“file.doc”,如果PHP使用该名称将其存储在服务器上,则会覆盖另一个。

您可以使用$_FILE['file']['name']检索原始客户端文件名。关于$ _FILE数组结构的完整详细信息是here

答案 1 :(得分:3)

使用唯一(和临时)名称将文件上载到临时目录。

您必须将文件移动到最终位置,并使用move_uploaded_file()正确命名。

第一个用法示例就是您想要的。

答案 2 :(得分:0)

如果您检查上传的$_FILES数组的其余部分,您将获得原始上传名称,以及上传文件的mime类型,您可以使用该名称执行进一步操作在上传后的文件上(如前一张海报所示,使用move_uploaded_file()移动/重命名)。

答案 3 :(得分:0)

是的,这是正常的。文件类型(MIME类型)存储在$_FILES['userfile']['type']

答案 4 :(得分:0)

您可以获得原始文件名,如下所示: 如果您以以下方式在控制器中获取文件:

$logo = $request->file('companyLogo');

然后$logo->getClientOriginalName() 可以给您原始文件名,也可以按以下步骤检查原始扩展名和文件大小:

$logo->getClientOriginalExtension()
$logo->getSize()