【问题标题】:strange behaviour using multipart/form-data on MySQL inserts在 MySQL 插入上使用 multipart/form-data 的奇怪行为
【发布时间】:2018-12-21 12:36:05
【问题描述】:

我有这样的表格

<form method="post" enctype="multipart/form-data">
    <input type="text" name="field01">
    <input type="file" name="file01">
    <button type="submit" name="update">Update</button>
    <button type="submit" name="new">Save New</button>
</form>

它包含不同的输入字段,如上例所示。

现在我遇到了一种奇怪的行为。在测试了我的 MySQL 插入/更新等之后,我稍后添加了 enctype。这按预期工作。文件上传也可以,但现在我遇到了问题,我的 INSERT 不再使用 multipart/form-data 工作。奇怪的是,我的更新确实与我的图像上传一起工作。如果我删除 enctype,我的 INSERT 确实可以工作,但我的文件上传显然不行。

我的 POST 数据在两种(插入/更新)情况下也是正确的,PDO 语句也是正确的(使用 queryString 检查它)。正如我所说,它有效。

button type="submit" 如何处理这种类型的表单?我已经尝试输入 type="submit" 来检查是否是问题所在,但结果是一样的。

【问题讨论】:

  • 也添加您的插入代码。
  • 插入代码不是问题。我通过 PDO 插入它,如果我不使用多部分,它可以工作。
  • @Jake — 您需要提供minimal reproducible example。人们不太可能仅仅通过看到一段单独触发问题的代码并且没有与之交互的其他代码来确定解决方案。

标签: php mysql file-upload multipartform-data


【解决方案1】:

好的,我想通了。问题不在于多部分,而是我将图像的文件名保存在数据库中。但是如果激活了 multipart,则内容是二进制的(即使没有设置文件)。这导致了问题,INSERT 失败。

我想 UPDATE 会忽略无法更新的字段并将它们留空?

【讨论】:

    猜你喜欢
    • 2014-01-09
    • 1970-01-01
    • 2020-12-31
    • 1970-01-01
    • 2020-01-26
    • 2011-07-28
    • 2020-07-14
    • 2016-07-03
    • 2015-10-11
    相关资源
    最近更新 更多