上传:

//获取参数文件流,并将文件流转化成二进制数组,适应JSP与Servlet

DiskFileItemFactory factory = new DiskFileItemFactory();

ServletFileUpload sfu = new ServletFileUpload(factory); sfu.setFileSizeMax(102400000);

sfu.setSizeMax(204800000);

List items = null;

try {

items = sfu.parseRequest(request);

} catch (SizeLimitExceededException e) {

System.out.println("size limit exception!");

} catch(Exception e) {

e.printStackTrace();

}

Iterator iter = items==null?null:items.iterator();

while(iter != null && iter.hasNext()) {

FileItem item = (FileItem)iter.next();

if(item.isFormField()) {

System.out.print("form field:");

System.out.print(item.getFieldName() + " ");

System.out.print(item.getString());

}else if(!item.isFormField()) {

System.out.println("client name:" + item.getName());

String fileName = item.getName();

//item.getInputStream() 获得文件流方法,其他文件不需要转化成二进制数组则不需要下面的转换

BufferedInputStream in = new BufferedInputStream(item.getInputStream());

byte[] b = new byte[in.available()];

in.read(b);

}

}

下载:

读取java类:

import java.io.InputStream;
import java.math.BigDecimal;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import javax.sql.DataSource;import org.springframework.jdbc.datasource.DataSourceUtils;import com.baosight.efmpx.system.sql.SqlID;
import com.baosight.efmpx.system.util.BeanContext;
import com.baosight.efmpx.system.util.ExceptionUtil;
import com.baosight.iplat4j.core.exception.PlatException;
import com.baosight.iplat4j.dao.ibatis.sqlmap.engine.impl.SqlMapClientImpl;
import com.ibatis.sqlmap.engine.mapping.parameter.ParameterMap;
import com.ibatis.sqlmap.engine.mapping.sql.Sql;
import com.ibatis.sqlmap.engine.mapping.sql.dynamic.DynamicSql;
import com.ibatis.sqlmap.engine.mapping.statement.MappedStatement;
import com.ibatis.sqlmap.engine.scope.RequestScope;/*** @author danger*读取人员照片Dao*/
public class EmpPhotoDao {//读取人员照片blob字段public static List<Map> readPhoto(Object param){DataSource ds = null;Connection con = null;PreparedStatement ps = null;ResultSet resultSet = null;InputStream inputStream = null;List<Map> result = new ArrayList<Map>();try {SqlID sqlid = new SqlID("HREGEmpPhoto","readPhoto");SqlMapClientImpl client = BeanContext.getSqlMapClientImpl();/*取得查询语句*/MappedStatement statement = client.getMappedStatement(sqlid.getSqlID());/*取得ibatis sql对象*/Sql sql = statement.getSql();/*取得ibatis 参数map对象*/ ParameterMap parameterMap = null;RequestScope requestScope = new RequestScope();requestScope.setStatement(statement);if (sql instanceof DynamicSql/*动态sql*/) {parameterMap = sql.getParameterMap(requestScope, param);}else{parameterMap = statement.getParameterMap();}/*取得带参数的sql语句*/String s = sql.getSql(requestScope, param);//取得SQL连接对象ds = (DataSource)BeanContext.getBean("dataSource");con = ds.getConnection();ps = con.prepareStatement(s);if (parameterMap != null){     if(param instanceof Map){           parameterMap.setParameters(requestScope, ps, parameterMap.getParameterObjectValues(requestScope, param));}else{if(s.indexOf("?")>0){ps.setString(1, (String)param);}}}/*执行查询*/resultSet = ps.executeQuery();/*转换成目标对象*/Class c = statement.getResultMap().getResultClass();ResultSetMetaData rsm = resultSet.getMetaData();int columnCount = rsm.getColumnCount();while (resultSet.next()) {Map objMap = new HashMap();for (int i = 0; i < columnCount; i++) {if (resultSet.getObject(i + 1) instanceof Blob) {Blob blob = resultSet.getBlob(i + 1);Long length = blob.length();inputStream = blob.getBinaryStream();if(inputStream != null){byte [] bytes = new byte[length.intValue()];inputStream.read(bytes);objMap.put(rsm.getColumnName(i + 1), bytes);}inputStream.close();} else {  objMap.put(rsm.getColumnName(i + 1), resultSet.getObject(i + 1));}}result.add(objMap);}} catch (SQLException e) {e.printStackTrace();throw new PlatException(ExceptionUtil.getDB2CNMessage(e));}catch (Exception e) {e.printStackTrace();} finally {try {if(ps!=null)ps.close();if(resultSet!=null)resultSet.close();DataSourceUtils.doReleaseConnection(con, ds);} catch (SQLException e1) {// TODO Auto-generated catch blocke1.printStackTrace();throw new PlatException(ExceptionUtil.getDB2CNMessage(e1));}return result;} }}

JSP将Blob 二进制数组转成图片

<%@page import="javax.servlet.jsp.tagext.TryCatchFinally"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>
<%@ page import="*.EmpPhotoDao" %>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="java.io.OutputStream" %>
<%@ page import="java.util.List" %>
<%OutputStream output = null;try{String empId = request.getParameter("empId");if(empId == null || empId.equals("")){return;}Map param = new HashMap();param.put("empId",empId);//调用java类方法获取结果集List<Map> result = EmpPhotoDao.readPhoto(param);if(result != null && result.size() > 0){for(Map map:result){byte[] bytes = (byte[])map.get("photo");if(bytes != null){String sbytes = new String(bytes);//设置HTML响应内容类型为图片if(sbytes.equalsIgnoreCase("GIF")){response.setContentType("image/gif");}else{response.setContentType("image/jpeg");}//输出图片output = response.getOutputStream();output.write(bytes,0,bytes.length);output.flush();}else{return;}}}}catch(Exception e) {e.printStackTrace();}finally{try{if(output !=null){//关闭流output.close();out.clear();out = pageContext.pushBody();}}catch (Exception e) {e.printStackTrace();}   }
%>

jsp显示图片代码:<!-- src为上面jsp的路径-->

<img src="EFMPX/HR/EG/imageDownload.jsp?empId=${emp.empId}" width="107" height="155" />



												

java 上传图片与图片读取相关推荐

  1. java 上传图片,图片预览,2种方法

    java 上传图片,图片预览,2种方法 1. 方法一:将图片上传到特定磁盘 html页面,form表单内容: <div class="layui-form-item"> ...

  2. java实现将图片读取成base64字符串,将base64字符串存储为图片。

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java实现将图片读取成base64字符串 ,将base64字符串存储为图片. 将图片转化为字符串以后,由于字符串更方便在网络上通过ajax传输. ...

  3. java下cmyk图片读取和转换rgb

    记录一下整个过程 第一次采用的办法 public static String readImage(String filename) throws IOException { File file = n ...

  4. 上传图片 现实图片 读取图片

    html <!-- 读取文件: accept用来限制上传的文件格式 --> <input ref="readFile" @change="fileCha ...

  5. java 上传图片到图片服务器

    简介: 上传图片功能想必大家都不陌生,几乎所有牵涉到用户的平台都会有上传头像等操作.今天我们就简单描述下新手如何快速上手. 一.准备个小demo 先看下图片上传工具类: /*** author : h ...

  6. java注解接收上传文件,前台:Input type=file 后台获取文件内容用的是spring注解,当地环境上传图片是好的,发布到服务器上图片读取不到,求大神指点...

    当前位置:我的异常网» Java Web开发 » 前台:Input type="file" 后台获取文件内 前台:Input type="file" 后台获取文 ...

  7. java上传图片到target目录,jsp如何访问target里的图片路径

    java上传图片到target目录,jsp如何访问target里的图片路径 昨天有个同学在做springmvc的图片上传,上传成功了却无法从网页中访问,我看了看上传后的路径,它用的idea编辑器,图片 ...

  8. java解析pdf 图片文字_Java 读取PDF中的文本和图片

    本文将介绍通过Java程序来读取PDF文档中的文本和图片的方法.分别调用方法extractText()和extractImages()来读取. 使用工具:Free Spire.PDF for Java ...

  9. java 像素矩阵_Java图片读取之BufferedImage得到像素矩阵的两种方式

    最近在尝试着采用Java在图像处理领域实践一下常用的机器学习算法.首先涉及到的是如何将一副图片读取到一个像素矩阵中(Java中就是一维或二维数组中).在实践过程中,通过测试代码,我发现基于Buffer ...

最新文章

  1. ASP与ASP.NET的区别
  2. Linux中的top命令查看内存和cpu信息
  3. textField textView输入限制
  4. VIJOS-P1192
  5. 计算机基础课程在线教学授课方案,《计算机基础》课程分层次模块化教学实施方案...
  6. java8的spliterator
  7. 疫情之下,哪些行业正在逆势爆发?
  8. k8s容器灰度发布最佳实践(基于spinnaker)
  9. 面试准备(集合部分)
  10. node-red 可视化_可视化和注意-第4部分
  11. 谷歌方法 pdf txt azw3 epub mobi 百度云盘网盘下载
  12. 全网最详细的Python自动化测试
  13. html自动对齐快捷键,Sketch 技巧:好用的对齐快捷键(附设置教程)
  14. jekins自动化部署
  15. python 怎么建立文件夹_如何用PYTHON新建文件夹
  16. html网络语言什么意思,网络语言开车什么意思 网络用语开车是什么意思
  17. 解决eclipse启动Tomcat报错,显示8005和8080端口被占用的问题
  18. 数据结构C语言实现高铁客运订票系统
  19. VMWARE WORKSTATION 网络
  20. BME680及bsec在STM32上的应用

热门文章

  1. 【叶子函数分享三十】SQL简繁转换函数
  2. 常见的算法分析及代码实现
  3. QtQuick串口编程Demo
  4. SIMD和SPMD的区别
  5. 【tinyint和int区别】
  6. keras中的目标函数和优化函数
  7. oracle索引查询
  8. hive 任务查询报错 Reduce operator initialization failed
  9. 基于Spark的新闻推荐系统,包含爬虫项目、web网站以及spark推荐系统
  10. CSDN知名安卓博主