【问题标题】:Setting enctype attribute for mixed data types, including file为混合数据类型设置 enctype 属性,包括文件
【发布时间】:2012-08-30 20:28:03
【问题描述】:

我是 PHP 和 HTML 的新手,在使用 POST 时无法理解表单的 enctype 属性。在使用 PHP 上传文件的所有示例中,都写到我应该将 enctype 设置为 multipart/form-data (据我所知,它用于文件)。然而,在所有这些示例中,表单上的唯一输入是文件输入。

我的问题是,如果我想要混合输入的表单怎么办?特别是文本和文件。然后,如果我将 enctype 设置为 multipart/form-data,我是否仍然能够使用 $_FILES 和 $_POST 从 PHP 访问文件和文本?

谢谢

【问题讨论】:

  • 为什么不自己试试呢?
  • 我看到一些帖子说这样我无法从 $_POST 获取数据。例如:stackoverflow.com/questions/1075513/…
  • enctype 在您的表单包含文件输入时使用,如果您的表单没有文件输入,则不需要它。只有在您的表单中添加了 enctype 时,您才会在 $_FILES 中获得值。不要担心 $_POST,除了文件输入之外,您可以使用它访问所有值。

标签: php html post file-upload enctype


【解决方案1】:

使用multipart/form-data

它将每条数据转换为多部分 MIME 请求中的一个部分(然后对每个部分进行一些特定的编码)。它不仅仅用于文件,如果您使用的是 PHP,那么$_POST 将被正常填充。

替代方案 (application/x-www-form-urlencoded) 基本上构建了一个查询字符串。对于 POST 请求,它使查询字符串成为请求正文。这种格式没有任何编码文件的规定。

【讨论】:

    【解决方案2】:

    这基本上意味着,将 $_FILE 数组添加到请求中。有关更多信息,请阅读此问题
    What does enctype='multipart/form-data' mean?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-06
      • 1970-01-01
      • 1970-01-01
      • 2012-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多