【问题标题】:Pass a file through a POST form通过 POST 表单传递文件
【发布时间】:2017-08-06 14:45:20
【问题描述】:

我有一个 page.php,我在其中加载一个 .csv 文件,读取它并最终将值上传到数据库中。我想要做的是,一旦文件被加载到我的表单中,并且我已经阅读了它,首先我检查我的数据库是否还有可用空间,如果没有剩余空间,我会打印一条消息说那里没有空间了,还是要上传吗?我可以做到这一点,但我不知道如何将已经加载到我的表单中的文件通过发布表单或任何其他方法发送到同一页面。

这是我在上传文件时读取文件的方式

$file = $_FILES['file']['tmp_name'];

但如果我尝试通过新 POST 表单中的隐藏字段发送 $file 变量,它不起作用。

【问题讨论】:

  • 完整代码在哪里?
  • 我希望你没有忘记在表单标签中添加enctype=multipart/form-data
  • 不,我没有,当我第一次从我的计算机中选择文件时,文件加载正常,但是第二次,当我尝试通过隐藏值传递它时,它不起作用,因为我可以在这里阅读,出于安全原因不能那样做..

标签: php file post


【解决方案1】:

出于安全原因,您不能通过隐藏输入发送文件。我建议您在第一次阅读时将上传的文件保存在服务器上。然后,如果用户点击anyway,则将此保存的文件作为第二次迭代的输入传递。

【讨论】:

    【解决方案2】:

    它不能重新填充字段输入。

    所以你可以

    1) 使用ajax检查是否有足够的空间,如果没有剩余空间则显示消息

    2)将文件中的数据存储在Web服务器上的文件中,并将有关它的数据以html形式存储在隐藏字段中,并在第二次提交后使用存储的文件。

    【讨论】:

    • 如何使用 ajax 检查并最终继续插入?假设我将插入查询放在一个名为 insert() 的函数中,如何使用 ajax 进行检查并最终调用该函数?
    • ajax 的优点是您不需要重新填充表单,因为您使用相同的 html 表单。代替普通提交,您发送带有所有表单数据的 ajax 提交。好吧-您将用户重定向到另一个页面或重新加载此页面。如果错误没有剩余空间 - 您将显示此错误并等待用户决定。
    • 问题是我对 ajax 不太熟悉,但据我从您的评论中可以看出,这将是解决我问题的正确方法..
    • 您是否有任何类似内容的链接,其中使用 ajax 进行检查,并有消息和按钮以继续查询?
    猜你喜欢
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 2021-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-16
    相关资源
    最近更新 更多