我有一个我提交的表单,其中包含其他输入,图像输入如下:
<label id="labelEnviarImagem" for='enviarImagem'>Choose a file »</label><br>
<input required type="file" name="productFile" id="enviarImagem">
我的问题如下:
有时,表单中的其他输入无效,PHP会将用户返回到表单页面,同时保存$_SESSION
上的先前值,以便用户预先填写表单并且无需重新输入所有内容即可修复错误。我怎样才能为图像做同样的事情?
我试图将图像保存在会话中,然后将其作为值传递给输入,但显然它没有用。
$_SESSION["dadosProduct"]["img"] = $_FILES['productFile']['tmp_name'];
<input required type="file" name="productFile" value="<?php echo isset($_SESSION['dadosProduct']) ? $_SESSION['dadosProduct']['name'] : ""; ?>" id="enviarImagem">
我的问题是:我可以在输入类型为文本/数字时使用$_SESSION
轻松保存信息,如何在input type="file"
时执行相同的操作?
答案 0 :(得分:1)
我试图将图像保存在会话中
您尝试这样做有两个问题。
您正在将文件名存储在会话中,但只要脚本完成the file will be deleted,您就会存储不再存在的文件的名称。
您需要将文件存储在更永久的位置(并在经过一段时间后实现自己的垃圾收集以进行清理)。
文件输入旨在从托管浏览器的计算机上传文件。
将其值设置为服务器上文件的路径是没有意义的(并且无论如何都无法设置文件输入的值)。
您需要提供其他类型的用户界面。
这可能只是一个简单的段落,表明文件名称whatever.ext
已存储在用户的会话中。