【问题标题】:Posting input type file problem No Value posted发布输入类型文件问题 没有发布值
【发布时间】:2011-08-16 23:46:21
【问题描述】:

我有一个表单,我在其中发布不同的字段,并且发布的每种类型的字段似乎都有效,除了输入文件类型。

我正在使用var_dump($_POST);,所有其他字段都在那里,但输入类型文件中没有。

我的表单部分如下所示:

<form enctype="multipart/form-data" id="ajax-form" action="index2.php" method="POST" data-ajax="true">

并且适用于其他一切。

如果输入类型文件有什么不同?

<input type="text" id="myid" name="myid" value="" /> ..This posts value

<input id="theimage" name="theimage" type="file" /> .. does not post value

有什么想法吗?

【问题讨论】:

  • +1 因为说真的,这个问题还没有被问到?我记得我第一次必须弄清楚时感到非常沮丧。

标签: php html


【解决方案1】:

文件存储在 $_FILES 中,而不是 $_POST

http://php.net/manual/en/reserved.variables.files.php$_FILES 变量

http://www.php.net/manual/en/features.file-upload.php PHP 文件上传手册。

处理文件(无错误检查):

$ROOT = "/path/to/store/files";
foreach($_FILES as $file => $details)
{   // Move each file from its temp directory to $ROOT
    $temp = $details['tmp_name'];
    $target = $details['name'];
    move_uploaded_file($temp, $ROOT.'/'.$target);
}

有关更多示例,另请参阅 http://www.php.net/manual/en/function.move-uploaded-file.php

【讨论】:

  • 刚试过:echo @$_FILES["theimage"];但返回数组...如何将文件名放入变量中?
  • 如果你 var_dump 数组,你会看到它有几个条目,每个文件一个,然后是关于文件的几条数据。我会用一个例子来编辑我的帖子。
  • php.net/manual/en/features.file-upload.post-method.php 详细说明了 $_FILES 数组的布局。
【解决方案2】:

其实如果你尝试火狐(>13),你可以得到发布的价值。但如果您使用的是 Chrome 或 Safari,则无法获取发布的值。我认为它与浏览器有关。

【讨论】:

    猜你喜欢
    • 2018-08-14
    • 2010-10-03
    • 2018-01-24
    • 2013-08-16
    • 2023-03-27
    • 2013-02-24
    • 1970-01-01
    • 2021-06-20
    • 2017-05-29
    相关资源
    最近更新 更多