HTML表单文件上传不起作用,$ _POST不转发数据

时间:2017-07-13 05:58:26

标签: php html forms file input

也许现在还为时尚早,但无法弄清楚问题......我已经制作了几种表格,但这次是因为我无法转发我的文件输入数据

这是我的 index.php (表单所在的位置):

<?php
if (isset($_POST['order'])) {

    $file       = $_POST['file1'];

    echo $file;

}
?>

这是我的confirm.php:

{{1}}

我收到以下错误消息:

注意:未定义索引:第4行/Applications/MAMP/htdocs/.../confirm.php中的file1

我真的不明白这是什么问题。这是一个简单的摇滚形式,我认为这是正确的。你能帮我解决这个大问题吗? :DD Btw。表单继续除文件之外的所有其他输入数据。

谢谢, 马修

3 个答案:

答案 0 :(得分:4)

由于您的输入类型是文件,因此您无法通过$_POST

进行访问
`type="file"` // Not Accessible through `$_POST` 

Php正在提供单独的http组$_FILES,用于获取输入值,类型应为file,如type="file"

因此,您可以通过$_FILES

获取输入值
if(isset($_POST['order'])){
   $Input_File = $_FILES['file1'];
   $Input_File_Name = $Input_File['name'];
   $Input_File_type = $Input_File['type'];
   $Input_File_tmp_name = $Input_File['tmp_name'];
   $Input_File_size = $Input_File['size'];

}

答案 1 :(得分:4)

您正在使用多部分/表单数据,但您只提供文件名字段。它将被这样使用。

<?php
if (isset($_POST['order'])) {

    $file       =$_FILES['file1']['name'];


    echo $file;

}
?>

答案 2 :(得分:2)

您无法使用$_POST来访问<input type="file" />的值。 您可以使用$_FILES

来访问此内容

试试这个:

<?php
if (isset($_POST['order'])) {
 $file = $_FILES["file1"]["name"];
 echo $file;
}
?>