Php 验证后失败后在输入时保存图像

Php 验证后失败后在输入时保存图像,php,Php,我提交了一个表格,其中包括一个图像输入,如下所示: <label id="labelEnviarImagem" for='enviarImagem'>Choose a file &#187;</label><br> <input required type="file" name="productFile" id="enviarImagem"> 我的问题是:当输入类型为text/number时,我可以使用$\u会话轻松保存信息,当inpu

我提交了一个表格,其中包括一个图像输入,如下所示:

<label id="labelEnviarImagem" for='enviarImagem'>Choose a file &#187;</label><br>
<input required type="file" name="productFile" id="enviarImagem">
我的问题是:当输入类型为text/number时,我可以使用
$\u会话
轻松保存信息,当
input type=“file”
时,我如何进行同样的操作

我已尝试在会话中保存图像

你这样做有两个问题

垃圾收集 您正在会话中存储文件名,但脚本一完成,您就存储不再存在的文件名

您需要将文件存储在更永久的位置(并实现您自己的垃圾收集,以便在一段时间后将其清理干净)

文件输入 文件输入用于从承载浏览器的计算机上载文件

将它的值设置为服务器上文件的路径毫无意义(而且您也无法设置文件输入的值)

您需要提供一些其他类型的UI


这可能只是一个简单的段落,说明文件名为
which.ext
,已存储在用户会话中。

可能是重复的,而不是重复的,我的代码与类型文件的输入有关。正如您所看到的,我已经尝试使用问题中解释的路径来解决问题。@Antonineto在检查服务器端验证之前,您可以先做一个思考,然后将文件上载到服务器并将值存储在会话中。如果验证失败,则在表单上显示这些会话映像。这是一个简单的解决方案。所以,在理论上。我应该将文件上载到服务器的临时位置,并在会话中保存已上载临时文件的信息,这样当用户再次尝试发送表单时,我就可以使用他以前的文件了?
$_SESSION["dadosProduct"]["img"] = $_FILES['productFile']['tmp_name'];

<input required type="file" name="productFile" value="<?php echo isset($_SESSION['dadosProduct']) ? $_SESSION['dadosProduct']['name'] : ""; ?>" id="enviarImagem">