用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(临时路径名附件,真实路径名附件)
把图片地址用php代码来代替就可以了。比如原本图片地址是<img src="images/1.jpg" />,数据库保存的是images/1.jpg,字段名是”images“。那么这边就改成<img src="<?php $row=['images']?>" />。html表单部分要这样:
<form method="post" action="proAddFile.php" enctype="multipart/form-data" >
<input type="hidden" name="MAX_FILE_SIZE" value="6000000">
<input name="form_data" type="file">
php部分:
if(is_uploaded_file($_FILES['form_data']['tmp_name']))
{
$file=$_FILES['form_data']
$name=$file['name']
echo $type=$file['type']
$size=$file['size']
$tmpfile=$file['tmp_name'] //临时存放文件
$error=$file['error']
if($erro) die("上传出现错误")
if($size>60000) die("太大")
switch($type){ // 得到上传文件后缀
case 'image/pjpeg' : $extension='.jpg' //jpeg
break
。。。。
default:
echo "出现错误"
}
$filename="wt209_" . date("Ymdhis") . $extension
$myfile="your directory" . $filename
if(move_uploaded_file($tmpfile,$myfile)) echo "上传成功"
}
?>
may help for you ,great regard from kwl.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)