PHP中的$ _file为什么这不起作用?

时间:2014-09-24 09:28:47

标签: php file file-upload

我是PHP的新手,我在PHP中编写了一个简单的代码用于文件上传。但是我的代码给了我一个错误。有人帮我查找错误 这是我的代码
错误给出未定义索引

<?php

$name=$_FILES["file"]["name"];
$size=$_FILES['file']['size'];
$type=$_FILES['file']['type'];

?>

<form  action="unset.php"method="POST">
<input type="file" name="file"><br><br>
<input type="submit" value="submit">



</form>

5 个答案:

答案 0 :(得分:2)

您必须使用<form>的enctype属性,该属性指定在将表单数据提交到服务器时应如何编码表单数据。

<form action="unset.php" method="POST" enctype="multipart/form-data">

仅在文件上传时才尝试访问FILES变量

if(isset($_FILES))
{
   $name=$_FILES["file"]["name"];
   $size=$_FILES['file']['size'];
   $type=$_FILES['file']['type'];
}

答案 1 :(得分:1)

enctype="multipart/form-data"添加到表单标记

答案 2 :(得分:1)

试试这个: PHP

<?php
if(isset($_POST['submit'])){
    echo $name=$_FILES["file"]["name"];
    echo $size=$_FILES['file']['size'];
    echo $type=$_FILES['file']['type'];
}

?>

HTML

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

答案 3 :(得分:1)

试试这个它不会给你未定义的索引错误

<?php

if(isset($_FILES) && $_SERVER['REQUEST_METHOD']=='POST')
{
   $name=$_FILES["file"]["name"];
   $size=$_FILES['file']['size'];
   $type=$_FILES['file']['type'];
}

?>
<form action="unset.php" method="POST" enctype="multipart/form-data">
<input type="file" name="file"><br><br>
<input type="submit" value="submit">



</form>

答案 4 :(得分:0)

您应该在表单标记中使用enctype =“multipart / form-data”,如

<form action="unset.php" method="POST" enctype="multipart/form-data">

注意:

  1. 标记的enctype属性指定提交表单时要使用的内容类型。当表单需要上传二进制数据(如文件内容)时,使用“multipart / form-data”

  2. 标记的type =“file”属性指定应将输入作为文件处理。例如,在浏览器中查看时,输入字段旁边会有一个浏览按钮