【问题标题】:how do I get HTML inputs in $_POST for a file upload如何在 $_POST 中获取 HTML 输入以进行文件上传
【发布时间】:2020-10-01 02:51:33
【问题描述】:

使用 HTML 文件中的以下代码,我可以读取该文件,但无法在 POST 中获取 fileToUpload 的名称。如果我删除了ENCTYPE,我确实通过了fileToUpload,问题是我相信multipart/form-data对于文件上传是强制性的,我不使用该编码方法,其余的例程来处理文件循环往复。

是否有办法通过使用 multipart/form-data 来获取 user=-selected 文件的名称?

PS,foo.php 有如下代码来检查 POST 的内容:

<?php
print_r($_POST);
?>

下面 HTML 代码的输出是“Array()”,没有 ENCTYPE,输出是 Array ([fileToUpload] => energydata2_X.CSV),后者是我需要的。感谢您的指导!

<form action="foo.php" method="POST" ENCTYPE="multipart/form-data">

  Select CSV file to upload:
  
  <input type="file" name="fileToUpload"/> 
  <input type="submit" value="Upload File"/>
  
</form>

【问题讨论】:

    标签: html forms enctype


    【解决方案1】:

    使用$_FILES 访问上传的文件。

    https://www.php.net/manual/en/reserved.variables.files.php

    【讨论】:

    • 谢谢!我不想使用 PHP,但如果我知道它们的名称,我可以访问环境变量。是否有通过 HTML 中的 FORM 传递的 POST 变量名称的完整列表?我使用 dBase,它有一个返回 OS 环境变量的 getEnv() 函数。 getEnv("REQUEST_METHOD") 返回 "POST",但 getEnv("$_FILES") 或 getEnv("_FILES") 返回空字符串,即操作系统中不存在同名的变量。
    • 我在这里找到了与我可以在我的内置内容中访问的内容相匹配的内容:cgi101.com/book/ch3/text.html。看起来 FILES 不是该列表的一部分。同时我发现文件名是 multipart/form-data 的一部分,所以我可以从那里提取文件名。很遗憾,我只能在上传完成后访问该信息...
    猜你喜欢
    • 2020-07-28
    • 1970-01-01
    • 2023-03-27
    • 2020-08-09
    • 1970-01-01
    • 1970-01-01
    • 2021-12-30
    • 2010-12-31
    • 2012-10-12
    相关资源
    最近更新 更多