你能用$ _FILES [tmp_name]来记住文件位置吗?

时间:2012-07-18 15:18:24

标签: php image file-upload

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

e.g。 value="$_FILES[tmp_name]"回显位置,以便用户无需再次重新选择图像。

4 个答案:

答案 0 :(得分:0)

不,您不能以这种方式使用$_FILES['tmp_name'],因为这不是用户计算机上的名称,而是tmp中服务器上的临时名称夹。不确定是否有办法做到这一点。如果我找到任何东西,我会调查并告诉你,但我怀疑是否有。

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

答案 1 :(得分:0)

这种方式不可能。 $_FILES[tmp_name]反映了服务器上已上传图像的完整路径。 无法在浏览器中预先选择上传字段,也无法获取上传文件的完整客户端路径。

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

或者您从图像上传部分中分离字段的验证。使用一些ajax魔法或单独的形式。

答案 2 :(得分:0)

这是不可能的,你可以尝试在文件输入上使用value属性来查看它没有效果。

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

答案 3 :(得分:0)

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