我正在尝试使用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");
?>
答案 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">