用input上传图片是把图片作为文件传输的,在php后台中使用 $_FILES来接收。
注意:前端的form表单除了action ,method 属性外,还要添加一个'enctype'属性,否则文件传输不成功。
<form enctype="multipart/form-data">
<input type="file" >
</form>
$_FILES接收信息 有几个属性:
name , 上传的文件名称
size , 上传的文件大小
tmp_name , 临时路径
type , 文件类型
error 错误提示
error取值说明:
( 0:没问题。1/2:大小超过限制[ 1->超出php.ini限制。2->超出文件域max_file限制 ]。3:只上传部分附件(不好测试)。4:没有上传附件)
有上传信息时:$_FILES接收到的附件信息:
没有上传信息时:$_FILES接收到的附件信息:
保存附件:把上传的文件由临时路径保存到真实的图片存储的位置。
move_uploaded_file(临时路径名附件,真实路径名附件)
HTML代码:
<body>
<form action="" method="post" enctype="multipart/form-data" name="upload_form">
<label>选择图片文件</label>
<input name="imgfile" type="file" accept="image/gif, image/jpeg"/>
<input name="upload" type="submit" value="上传" />
</form>
</body>
PHP代码:
if (isset($_FILES['imgfile'])
&&is_uploaded_file($_FILES['imgfile']['tmp_name']))
{
$imgFile = $_FILES['imgfile']
$upErr = $imgFile['error']
if ($upErr == 0)
{
$imgType = $imgFile['type']//文件类型。
/* 判断文件类型,这个例子里仅支持jpg和gif类型的图片文件。*/
if ($imgType == 'image/jpeg'
|| $imgType == 'image/gif')
{
$imgFileName = $imgFile['name']
$imgSize = $imgFile['size']
$imgTmpFile = $imgFile['tmp_name']
/*
将文件从临时文件夹移到上传文件夹中。
注意:upfile这个文件夹必须先创建好,不然会报错。
*/
move_uploaded_file($imgTmpFile, 'upfile/'.$imgFileName)
/*显示上传后的文件的信息。*/
$strPrompt = sprintf("文件%s上传成功<br>"
. "文件大小: %s字节<br>"
. "<img src='upfile/%s'>"
, $imgFileName, $imgSize, $imgFileName
)
echo $strPrompt
}
else
{
echo "请选择jpg或gif文件,不支持其它类型的文件。"
}
}
else
{
echo "文件上传失败。<br>"
switch ($upErr)
{
case 1:
echo "超过了php.ini中设置的上传文件大小。"
break
case 2:
echo "超过了MAX_FILE_SIZE选项指定的文件大小。"
break
case 3:
echo "文件只有部分被上传。"
break
case 4:
echo "文件未被上传。"
break
case 5:
echo "上传文件大小为0"
break
}
}
}
else
{
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)