// 后台代码
list存储每张的fileid
针对每个file写输出流,写在单独的method中
// jsp侧
<c:foreach val="file" items="list">
<img src="getimageactionfileid" + "${filefileid}" />
</c:foreach>
这里,我只想总结一下我一下午研究文件上传,上传功能的思考。也许花费了很多时间,但还是觉得比较值的。
以前一直听说过“项目使用的所有应该保存在服务器上,”一直看过这样的代码:Java后端由各种流组成的处理或着文件的方法。当时其实都是朦胧的,似懂非懂的样子。现在或许是有那么的一点理解了:当项目或者具体说页面中存在大量的时,页面的加载可能会很慢,这时,可能就需要使用一个独立的服务器来专门的读取这些了, 所以才有了服务器的说法。(或许是这样)。
上传功能的具体实现(当然文件也一样):
总的来说是这样的, 我们在页面上通过按钮获取到某张后,会显示在页面上(如果你需要的话),显示的可以是本身,或者是的名字。然后通过ajax,把传到了Java后台,(以什么格式我还不清楚),根据我这一下午的实践,MultipartFile ,这个类可以完全接收到前台传过来的数据。,这里也许有人会问, 传到后台干嘛呢。假设你的前端调用的不是你本项目的Java后台代码,而是另外一个接口Api项目的话, 那么,其实,这个APi项目就可以当作一个服务器了。额,这里仅仅是临时保存了而已,就页面而言,如果是表单,你还需要提交表单。那么表单提交时,你还会保存吗?应该是存在服务器上的地址吧。
MultipartFile 通过 MultipartFile transferTo( new File()), 仅需要这步骤,就可以把存到服务器所在的电脑的任意一个盘或者路径里面。 其实这个很简单,难是难在 文件的创建。(坑了我很久),
new File("d:/test1/test2/test3/demopng"), 类似要创建这样的 File文件时, 你要先判断demopng 的父级路径是否存在,如果不存在则要先创建。否则你也许会报一个错误,“javaioFileNotFoundException 拒绝访问”
也许废话说了很多,下面直接上示例代码, 本实例代码亲测有效可用。本实例 前端采用layui + 后端 springMVC+MultipartFile
页面jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<title>文件上传demo</title>
<%@include file="/comm/mytagsjsp" %>
</head>
<body>
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
<legend>常规使用:普通
我这个是使用的echarts的饼图,如果需要使用到其他的图形,可以在echarts的官网上面去找找,上面各种的图都有例子
option = {
title : {
//图中2的位置
text: '某站点用户访问来源',
subtext: '纯属虚构',
x:'center'
},
tooltip : {
trigger: 'item',
formatter: "{a} <br/>{b} : {c} ({d}%)"
},
legend: {
orient: 'vertical',
left: 'left',
data: ['直接访问','邮件营销','联盟广告','视频广告','搜索引擎']//图中1的位置
},
series : [ //图中3的位置
{
name: '访问来源',
type: 'pie',
radius : '55%',
center: ['50%', '60%'],
data:[
//这下面就是你从数据库中查询的结果
{value:335, name:'直接访问'},
{value:310, name:'邮件营销'},
{value:234, name:'联盟广告'},
{value:135, name:'视频广告'},
{value:1548, name:'搜索引擎'}
],
itemStyle: {
emphasis: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 05)'
}
} }]};
数据具体怎么从后台传送到前台来,楼主应该知道的吧,我这儿就不说了,望采纳!
我把你的代码稍微改造了下,我这边是可以显示的。代码如下:
数据库 *** 作部分:
package comdatabase;import javaioInputStream;
import javasql;
/
@作者 王建明
@创建日期 13-10-7
@创建时间 下午12:32
@版本号 V 10
/
public class DataBaseUtil {
public static InputStream getImageStreamFromDataBase() {
Connection conn = null;
try {
ClassforName("commysqljdbcDriver");
conn =
DriverManagergetConnection("jdbc:mysql://localhost/quickstart", "root", "123456");
Statement stmt = conncreateStatement();
String sql = "select book_image from tbl_book where id=1 ";
ResultSet rs = stmtexecuteQuery(sql);
if (rsnext()) {
return rsgetBinaryStream("book_image");
}
} catch (Exception e) {
Systemoutprintln("出现异常: " + egetMessage());
} finally {
try {
if (conn != null)
connclose();
} catch (SQLException e) {
eprintStackTrace();
}
}
return null;
}
}
servlet部分:
package comservlet;import comdatabaseDataBaseUtil;
import javaxservletServletException;
import javaxservlet>}
webxml中的servlet配置:
<servlet><servlet-name>ShowImage</servlet-name>
<servlet-class>comservletShowImage</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ShowImage</servlet-name>
<url-pattern>/showImage</url-pattern>
</servlet-mapping>
页面中加载方式:
<img src="showImage" />希望对你有帮助O(∩_∩)O~
在数据库提取部分数据,在JSP上显示的做法如下:
思路:1、创建db连接 2、创建statement 3、执行查询 4、遍历结果并展示
完整代码如下:
<span style="font-size:12px;"><span style="font-size:14px;"><%@ page language="java" import="javasql,javaio,javautil"%>
<%@ page contentType="text/html;charset=utf-8"%>
<html>
<head>
<style type="text/css">
table {
border: 2px #CCCCCC solid;
width: 360px;
}
td,th {
height: 30px;
border: #CCCCCC 1px solid;
}
</style>
</head>
<body>
<%
//驱动程序名
String driverName = "commysqljdbcDriver";
//数据库用户名
String userName = "root";
//密码
String userPasswd = "szy";
//数据库名
String dbName = "studentmanage";
//表名
String tableName = "student";
//联结字符串
String url = "jdbc:mysql://localhost:3306/" + dbName + "user="
+ userName + "&password=" + userPasswd;
ClassforName("commysqljdbcDriver")newInstance();
Connection connection = DriverManagergetConnection(url);
Statement statement = connectioncreateStatement();
String sql = "SELECT FROM " + tableName;
ResultSet rs = statementexecuteQuery(sql);
%>
<br>
<br>
<table align="center">
<tr>
<th>
<%
outprint("学号");
%>
</th>
<th>
<%
outprint("姓名");
%>
</th>
<th>
<%
outprint("专业");
%>
</th>
<th>
<%
outprint("班级");
%>
</th>
</tr>
<%
while (rsnext()) {
%>
<tr>
<td>
<%
outprint(rsgetString(1));
%>
</td>
<td>
<%
outprint(rsgetString(2));
%>
</td>
<td>
<%
outprint(rsgetString(3));
%>
</td>
<td>
<%
outprint(rsgetString(4));
%>
</td>
</tr>
<%
}
%>
</table>
<div align="center">
<br> <br> <br>
<%
outprint("数据查询成功,恭喜你");
%>
</div>
<%
rsclose();
statementclose();
connectionclose();
%>
</body>
</html></span><span style="font-size:24px;color: rgb(255, 0, 0);">
</span></span>
展示结果:
以上就是关于java中 以blob存储的图片如何以二进制流在jsp页面显示,而且是批量显示图片,求代码全部的内容,包括:java中 以blob存储的图片如何以二进制流在jsp页面显示,而且是批量显示图片,求代码、MultipartFile上传文件数据库保存进了但是target里面没有图片、java怎么从数据库里获得动态数据生成统计图等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)