无法在php中获取上传图像的路径

时间:2015-12-13 21:44:47

标签: php

我正在尝试使用php检索我在html页面中上传的图像的路径,但是当我使用$ _FILES [' file1'] [' tmp_name' ]它显示错误说"未定义的索引:file1"。 这是我正在尝试的代码: HTML:

<form name="form1" method="GET" action="image.php">
<br/>
<input type="file" name="file1"/>
<input type="submit" value="submit"/>
</form>

PHP:

<?php

$files=$_FILES['file1']['tmp_name'];
$folder="images";
if(is_uploaded_file($_FILES['file1']['tmp_name']))
{
    move_uploaded_file($_FILES['file1']['tmp_name'], $folder . '/'.$_FILES['file1']['name']);
    $image=$folder . '/'.$_FILES['file1']['name'];
    echo "Successfully Uploaded";
    echo $image;

  }
  else
  die("Not Uploaded");


?>

2 个答案:

答案 0 :(得分:4)

上传文件需要POST方法,而不是GET。

请教:

还要确保您要上传的文件夹具有适当的权限才能写入。

旁注编辑:另外,如另一个答案中所述,需要有效的enctype。

我也会用:

if ($_SERVER['REQUEST_METHOD'] == 'POST'){...}

为确保使用POST方法,同时为else使用完整支撑,并为上述内容添加另一个else{...}

if ($_SERVER['REQUEST_METHOD'] == 'POST'){

    $files=$_FILES['file1']['tmp_name'];
    $folder="images";
    if(is_uploaded_file($_FILES['file1']['tmp_name']))
    {
        move_uploaded_file($_FILES['file1']['tmp_name'], $folder . '/'.$_FILES['file1']['name']);
        $image=$folder . '/'.$_FILES['file1']['name'];
        echo "Successfully Uploaded";
        echo $image;
    } else {
        die("Not Uploaded");
    }

} else{
   echo "A POST method was not used here.";
}

对您的文件输入也是条件!empty()

答案 1 :(得分:2)

变化:

<form name="form1" method="GET" action="image.php">

<form name="form1" method="POST" enctype="multipart/form-data" action="image.php">