用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中使用input type="file"上传文件时,代码中只能得到文件的名称,而有些特殊的需要要求得到上传文件的绝对路径,为此采用Javascript实现得到文件的绝对路径。<form name="thisform" method="post"
action="<%=request.getContextPath()%>/movieManage.do" id="thisform" enctype="multipart/form-data">
<input type="file" name="theFile" onchange="document.getElementById('theFilePath').value=this.value"/>
<input type="hidden" id="theFilePath" name="theFilePath" value="">
</form>
注意:要有enctype="multipart/form-data"
Action代码:
String filePath = request.getParameter("theFilePath")
filePath既是上传文件的绝对路径。
浏览器中测试:
Firefox和IE中可以得到绝对路径。
这个是上传文件的html标签,一般用在表单里面,完整写法是<input type='file' name='file' /> 然后php端用$_POST['file']或者$_GET['file']这样接文件
上传的原理是:上传文件直接上传成功,暂存为.tmp格式的文件,一般是接收之后,将文件移动到别的目录
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)