您可以使用$_FILES[tmp_name]来记住文件位置吗


Can you use $_FILES[tmp_name] for remembering file location?

我现在正在构建一个表单,如果缺少字段或字段输入错误,它会将用户返回到表单本身。其中一个输入是图像文件。我想知道如果你想再次回声出图像位置,你使用$_FILES[tmp_name]吗?

例如CCD_ 2以回显该位置,从而用户不必再次重新选择图像。

这是不可能的。CCD_ 3在服务器上反映已经上传的图像的完整路径。a不可能在浏览器中预先选择上传字段,也不可能获得上传文件的完整客户端路径。

因此,在出现错误的情况下,您可以将这个临时文件复制到另一个位置,并将已经上传的图像显示给用户,而不是再次给他上传字段。但是,如果用户没有尝试修复他的无效字段,则需要确保删除此复制的图像。

或者将字段的验证与图像上传部分分离。使用一些ajax魔术或单独的形式。

不,不能以这种方式使用$_FILES['tmp_name'],因为这不是它在用户计算机上的名称,而是它在服务器上tmp文件夹中的临时名称。不确定是否有办法做到这一点。我会调查一下,如果我发现了什么,就会告诉你,但我怀疑是否有。

如果你使用AJAX文件上传,你不必担心这一点。

这是不可能的,您可以尝试在文件输入上使用value属性来查看它是否无效。

想象一下,如果你能做到这一点,那将是一个严重的安全问题(即:用一个重要文件的公共路径隐藏一个预填充值的文件输入,并同时获取它和一些其他细节)

如果表单是通过普通html表单提交的,则您无权访问用户的文件路径。您最好的选择是使用AJAX表单提交。