1

我的multi-part form的流程基本上是Answer form -> Preview form -> Upload to database

现在我在预览步骤中上传我的文件,因为POST数据是来自实际表单的新数据。$_FILES我的问题是在 Upload to database 函数中访问一次,因为在内部var_dump($_FILES)返回array(0) {}一次upload_to_database()

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

我该如何解决这个问题?

编辑

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

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

上传当前处于预览状态,因为现在它只能在其中工作。$_FILES一旦我们去,它是空的upload_to_database()

如何$_FILES从 Preview获得完整且持久的内容upload_to_database()

4

2 回答 2

1

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

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

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

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

于 2013-02-28T16:42:54.207 回答
0

是不是可以做这样的事情:

预习:

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

D B:

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

我的意思是将 $_FILES 作为参数提供给您的 upload_to_database 函数

于 2013-02-28T16:43:24.643 回答