19

这是我的错误:

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

如何摆脱它?

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';
    }
?>
4

10 回答 10

32

确保您已设置表单属性enctype="multipart/form-data"

此属性帮助您从用户那里获取文件。

<form action="PATH" method="post" enctype="multipart/form-data"></form>
于 2016-07-03T13:19:21.420 回答
17

如下更改您的 PHP 脚本并尝试

<?php 
    if(isset($_POST['submit'])){
        $name       = $_FILES['file']['name'];  
        $temp_name  = $_FILES['file']['tmp_name'];  
        if(isset($name) and !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 !!';
        }
    }
?>
于 2013-09-26T12:17:24.870 回答
7

这是由于文件的大小而发生的:

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

在您的 php.ini 文件中,您应该根据您的要求更改上述代码...

于 2017-12-11T14:10:35.857 回答
1

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

于 2013-09-26T12:33:00.993 回答
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';
    }
?>
于 2013-09-26T12:17:15.863 回答
1

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

enctype="multipart/form-data"

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

注意:enctype 属性只能在 method="post" 时使用。

于 2019-09-11T06:55:03.963 回答
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/>";
            }
}
于 2013-09-26T12:26:02.047 回答
0

如果您收到通知:未定义的索引:大多数时间错误消息中的 zip_file,在使用 php 将任何文件上传到服务器时,那么这里是解决方案。只有您需要在表单标签中提及enctype类型。

<form method="post" action="" name="login" enctype="multipart/form-data">
于 2018-04-13T15:46:51.983 回答
-1

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

file_uploads = On
于 2017-05-08T18:17:48.237 回答
-3

这个问题的可靠解决方案是使用

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

  echo $option;
  }

总是使用 isset 函数

于 2019-04-13T19:51:19.167 回答