我试图将文件上传到我的服务器 但问题是if(isset($ _ FILES [' upl']))总是返回false
我的php:
if($_SERVER['REQUEST_METHOD'] == 'POST')
$allowed = array('png', 'jpg', 'gif', 'jpeg', 'bmp');
{
if(isset($_FILES['upl']) )
{
echo 'test';
$extension = pathinfo($_FILES['upl']['name'], PATHINFO_EXTENSION);
if(!in_array(strtolower($extension), $allowed)){
echo json_encode(array('success'=> false, 'message'=> 'No supported file type'));
exit;
}
$filename = "test".$extension;
if(move_uploaded_file($_FILES['upl']['tmp_name'], $url.'images/uploads/'.$filename)){
echo json_encode(array('success'=> true, 'url'=> $weburl .'images/uploads/'. $filename, 'filename' => $_FILES['upl']['name']));
exit;
}
}
}
HTML:
<form action="" method="post">
<label for="file">Logo</label><input type="file" name="upl">
<input type="submit" disabled='disabled' value=''>
</form>
如果是在页面检查中,我从不使用动作,使用一个不解决问题
答案 0 :(得分:9)
你错过了
enctype="multipart/form-data"
形式
<form action="" method="post" enctype="multipart/form-data">
答案 1 :(得分:3)
您需要更改
<form action="" method="post">
到
<form action="" method="post" enctype="multipart/form-data">
答案 2 :(得分:3)
您忘记了enctype
中的form
。
<form action="" method="post" enctype="multipart/form-data">
<label for="file">Logo</label>
<input type="file" name="upl" />
<input type="submit" disabled="disabled" value="" />
</form>
答案 3 :(得分:2)
您应该在表单标记中添加属性 enctype =“multipart / form-data”,以将文件上传到服务器....
答案 4 :(得分:2)
上传文件时非常重要的属性是enctype
:
<form action="" method="post" enctype="multipart/form-data">
答案 5 :(得分:2)
对于文件上传,您需要添加属性:
enctype="multipart/form-data"
因此,您的更新代码应为:
<form action="" method="post" enctype="multipart/form-data">
答案 6 :(得分:1)
您在from属性中错过了enctype参数。 如果您使用GET方法 进行文件上传,则没有必要。但是如果你使用POST方法进行文件上传,那么你的表单参数应该是这样的,
<form method="post" action="upload.php" enctype="multipart/form-data">