项目中第一次做图片上传和下载功能过程>>>

本文记录了一位新手开发者在基于SSH框架的项目中实现图片上传和下载功能的过程。从页面表单设计,到数据库字段配置,再到后台接收与存储,过程中遇到了表单数据丢失、文件大小限制等问题,最终通过调整Struts2和Spring配置解决了问题。作者反思了自己对Struts和Hibernate框架的不足,并分享了解决方案,以供他人参考。
摘要由CSDN通过智能技术生成

也是刚参加工作不久,被分配一个需求是做图片的上传和下载。项目是基于SSH框架的,对于不熟悉struts2和hibernate框架的我的实现过程就开始了。

当然我是从页面做起,首先在原本写好的页面表单中,添加file类型的input输入框不用多说。

<span style="white-space:pre">				</span><tr>
					<td align="right">身份证正面照:</td>
					<td><input id="identityA" name="identityA" type="file"
						value="" οnchange="chksize(this.value)" /> <font id="codeMessage">请上传身份证正面照片。</font></td>
				</tr>
				<tr>
					<td align="right">银行卡正面照:</td>
					<td><input id="bankA" name="bankA" type="file" value=""
						οnchange="chksize(this.value)" /> <font id="codeMessage">请上传银行卡正面照片。</font></td>
				</tr>
页面展示的布局OK:

页面写好,数据库表中加好了identityA,bankA,bankB三个字段,类型blob。该去后台接收了。参考了其他项目中的上传图片后台接收图片的方法:

		// 转型为MultipartHttpRequest
		MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
		// 获得图片(根据前台的name名称得到上传的文件)
		MultipartFile imgFile1 = multipartRequest.getFile("idendityA");
		byte[] fileBytes1 = imgFile1.getBytes();
		MultipartFile imgFile3 = multipartRequest.getFile("bankA");
		byte[] fileBytes3 = imgFile3.getBytes();
		MultipartFile imgFile4 = multipartRequest.getF
图片输入输出流的上传和下载关键代码 取得HttpServletRequest的InputStream输入流 InputStream is request getInputStream ; 以InputStream输入流为基础 建立一个BufferedReader对象 BufferedReader br new BufferedReader new InputStreamReader is ; String buffer null; 循环读取请求内容的每一行内容 while buffer br readLine null { 如果读到的内容以 开始 且以 结束 表明忆到请求内容的结尾 if buffer endsWith " " &&buffer startsWith " " { 跳出循环 break; } 如果读到的内容以 开始 表明开始了一个表单域 if buffer startsWith " " { 如查下一行内容有filename字符串 表明这是一个文件域 if br readLine indexOf "filename" > 1 { 跳过两行 开始处理上传的文件内容 br readLine ; br readLine ; 以系统时间为文件名 创建一个新文件 File file new File request getRealPath " " + System currentTimeMillis ; 创建文件输出流 PrintStream ps new PrintStream new FileOutputStream file ; 接着开始读取文件内容 String content null; while content br readLine null { 如果读取的内容以 开始 表明开始了下一个表单域内容 if content startsWith " " { 跳出处理 break; } 否则 将读到的内容输出到文件 ps println content ; }">图片输入输出流的上传和下载关键代码 取得HttpServletRequest的InputStream输入流 InputStream is request getInputStream ; 以InputStream输入流为基础 建立一个BufferedReader对象 BufferedReader br new BufferedReader new InputStreamReader is ; String buff [更多]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值