请,
上传图片后,文件仍然在TMP文件夹中,当我回显:
$_FILES['file']['tmp_name']
我得到了,例如:
/tmp/phpZnmIfT
所以上传的图片没有扩展名?! 这是“正常”还是某些Php GD配置丢失了?
提前致谢
答案 0 :(得分:4)
PHP使用临时名称存储文件,这就是您所看到的。毕竟,两个或更多人可能会上传相同的“file.doc”,如果PHP使用该名称将其存储在服务器上,则会覆盖另一个。
您可以使用$_FILE['file']['name']
检索原始客户端文件名。关于$ _FILE数组结构的完整详细信息是here。
答案 1 :(得分:3)
答案 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()