上传文件时未定义的索引

时间:2013-09-26 12:15:06

标签: php

这是我的错误:

  

注意:未定义索引:文件输入   第21行的C:\ xampp \ htdocs \ Project \ Template1 \ users \ index.php注意:   未定义的索引:文件输入   请在第23行C:\ xampp \ htdocs \ Project \ Template1 \ users \ index.php   上传

如何摆脱它?

Html代码:

<form action="index.php" method="post" enctype="multipart/form-data">
<input type="file" name="file" id="file"><br><br>
<input type="submit" value="submit" name="submit">
</form>

Php代码:

<?php

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

    if (isset($name)) {

        if (!empty($name)) {
            $location = '../uploads/';
        }

        if (move_uploaded_file($temp_name, $location.$name)) {
            echo 'uploaded';
        }

    } else {
        echo 'please uploaded';
    }
?>

12 个答案:

答案 0 :(得分:15)

确保您已设置表单属性 enctype =“multipart / form-data”
此属性可帮助您从用户处获取文件。

<form action="PATH" method="get/post" enctype="multipart/form-data"></form>

答案 1 :(得分:8)

试试这个

<?php 
 if(isset($_POST['submit'])){
    $name       = $_FILES['file']['name'];  
    $temp_name  = $_FILES['file']['tmp_name'];  
    if(isset($name)){
        if(!empty($name)){      
            $location = '../uploads/';      
            if(move_uploaded_file($temp_name, $location.$name)){
                echo 'File uploaded successfully';
            }
        }       
    }  else {
        echo 'You should select a file to upload !!';
    }
}
?>

答案 2 :(得分:7)

确保您已设置表单属性enctype="multipart/form-data"。 此属性可帮助您从用户获取文件。

<form action="#" method="get/post" enctype="multipart/form-data">
</form>

答案 3 :(得分:1)

拼写错误:

<?php
$name = $_FILES['file']['name'];

$temp_name = $_FILES['file']['tmp_name']; // tmp_name

if(isset($name)){
if(!empty($name)){

$location = '../uploads/';
}
if(move_uploaded_file($temp_name, $location.$name)){
echo 'uploaded';
}
}  else {
echo 'please uploaded';
}
?>

答案 4 :(得分:1)

检查PHP代码块,检查是否已按下提交按钮或isset($_FILES['file'])。这应该删除您的错误。它们会弹出,因为在按下提交按钮之前未填充$ _FILES ['file']。

答案 5 :(得分:1)

如果您在注意:未定义索引:zip_file 错误消息大部分时间,在使用php将任何文件上传到服务器时,那么这是解决方案。只需要在表单标记中提及 enctype 类型。

<form method="post" action="" name="login" enctype="multipart/form-data">

答案 6 :(得分:1)

通常,问题是忘记将此行添加为表单标签属性。

enctype="multipart/form-data"

enctype属性指定将表单数据提交到服务器时应如何编码。

注意:仅当method =“ post”时,才能使用enctype属性。

答案 7 :(得分:0)

$upload_dir="../uploads";
$target_file="";
$tmp_file="";
if(isset($_POST['submit']))
{

        $tmp_file=$_FILES['file']['tmp_name'];
        $target_file=basename($_FILES['file']['name']);
            if(move_uploaded_file($tmp_file, $upload_dir."/".$target_file))
        {   
        echo "File uploaded <br />";

        }
        else {
              echo "Something went Wrong !!<br/>";
            }
}

答案 8 :(得分:0)

由于文件大小而发生这种情况:

max_execution_time = 300
max_input_time = 240
post_max_size = 128M upload_max_filesize = 128M

在你的php.ini文件中,你应该根据你的要求改变上面的代码...

答案 9 :(得分:-1)

检查php.ini上是否启用了 file_uploads

file_uploads = On

答案 10 :(得分:-1)

解决此问题的可靠方法是使用

if(isset($_POST['submit-button'])){
 $option="";
  $option=$_POST["anbieterin_geburtstag_month"];

  echo $option;
  }

始终使用isset函数

答案 11 :(得分:-1)

删除标签
script src="jquery.min.js"></script
还有

script src="bootstrap.min.js"></script
在某些情况下,将停止上传过程