记住表单提交上的文件上传

时间:2014-11-09 21:52:57

标签: php jquery forms codeigniter

我使用codeigniter和jquery创建一个采用文本值和单个文件上传的表单。 我想要它,以便如果表单验证失败,上传的图像仍然可供用户看到,但我现在不知道如何在没有问题弹出的情况下执行此操作。

我目前的解决方案是上传图像,无论表单是否经过验证,然后检查是否存在与$ _FILES中名称同名的文件,并提供该文件。但是这导致了重复的问题。我使用数字附加重复的文件名(例如file2.jpg),但这意味着上传的文件总是会找到图像名称" file.jpg"即使用户上传的文件已经分配了名称" file3.jpg"。

必须有一种更简单的方法。

2 个答案:

答案 0 :(得分:0)

如何使用散列名称md5(name + actualTimestamp)保存文件并将此文件名保存到用户会话中(您可以将此文件名保存在cookie中或使用带有序列化会话数据的会话mysql表)。

答案 1 :(得分:0)

如何为表单分配唯一ID,可能是年,月,日,小时,分钟和秒的组合,然后将上传的图像移动到服务器上的临时目录,保存图像的名称与表格id ....

你的代码应该是这样的:

<form method="post" action="process.php">

<input type="hidden" name="form_id" value="<?php if(isset($_POST['form_id'])){ echo $_POST['form_id']; }else{ echo date("Ymdhis"); }" />

<!-- other form objects goes here -->

</form>