CodeIgniter上传文件后预览



我的多部分表单的流程基本上是回答表单->预览表单->上传到数据库

现在我在预览步骤中上传我的文件,因为POST数据是从实际表单中新鲜的。我的问题是访问$_FILES一次在上传到数据库功能,因为var_dump($_FILES)返回array(0) {}一次在upload_to_database()

我想实际上在预览步骤中隐藏input[type=file],以便我的upload_to_database()将接收$_FILES,但由于安全原因,这是不可能的。

如何解决这个问题?

编辑

对不起,我上面的帖子含糊不清。

我实际上想在upload_to_database()函数中上传一次。我认为在预览阶段上传用户的文件是不好的做法,不像在上传到数据库中,他们确定自己的答案。

上传目前在预览中,因为现在它只在里面工作。当我们进入upload_to_database()时,$_FILES是空的。

如何从预览到upload_to_database()获得完整和持久的$_FILES ?

你可以在第一步上传你的文件(当进入预览表单;就像你现在做的那样),将它们移动到特定的preview目录,并在上传到数据库时将它们移动到最终目的地。

我想你使用类似会话的东西来跟踪发布的数据,所以你可以添加preview文件路径相同的方式。

然后设置一个简单的cron作业,每xx小时删除preview目录中超过xx小时的所有文件。

编辑:另一种选择是在javascript中完成完全客户端预览,例如在SO上预览问题和答案。

是不是可以这样做:

预览:

upload_to_database($_FILES['userfile']['tmp_name']);
DB:

function upload_to_database($file)
{
  // work with file here
}

我的意思是提供$_FILES作为你的upload_to_database函数的参数

相关内容

  • 没有找到相关文章

最新更新