用jspsmart上传图片到oracle,图片大小受限

centos-stream-9上安装nvidia驱动和cuda-toolkit 阅读详情
图片存储的字段是BLOB,图片先上传至服务器目录,再存入ORACLE,此时大小超过  
6K时会出错。  
 
 错误信息如下:  
Exception:  java.sql.SQLException:  Io  异常:  End  of  TNS  data  channel。  
 烦死了。  
---------------------------------------------------------------  
 
其实很方便的,你写个删除文件的方法,从数据库读出文件名然后删掉,也很方便  
---------------------------------------------------------------  
 
我没用jspsmart,直接上传的:(  
你可以参考!测试通过。  
 
第一步:建立数据库  
create  table  test_img(id  number(4),name  varchar(20),img  long  raw);  
 
第二步:(NewImg.html)  
 
<html><head><title>添加图片</title></head>  
<body>  
添加图片<br>  
<form  method="post"  action="insertNews.jsp">  
图像ID:<input  name="id"  size="10">  
<br>  
选择图像:<input  type="file"  name="image">  
<br>  
<input  type="submit"  value="上传"  name="submit"  size="25">  
<input  type="reset"  value="清除"  name="clear"  size="25">  
<br>  
</form>  
</body></html>  
 
第三步:插入数据库(InsertImg.jsp)  
 
<%@  page  language="java"%>  
<%@  page  contentType="text/html;charset=gb2312"  %>  
<%@  page  import="java.util.*"  %>  
<%@  page  import="java.sql.*"%>  
<%@  page  import="java.text.*"%>
<%@  page  import="java.io.*"%>  
 
<%  
Class.forName("oracle.jdbc.driver.OracleDriver");
String  url="jdbc:oracle:thin:@lubin:1521:b2bdb";
Connection  con=DriverManager.getConnection(url,"demo","demo");
 
//插入数据库  
String  sql="insert  into  test_img  values  (?,?,?)";  
//获取传值ID  
String  id=request.getParameter("id");  
//获取image的路径  
String  kk=request.getParameter("image");  
//转换成file格式  
File  filename=new  File(kk);  
 
//将文件的长度读出,并转换成Long型  
long  l1=filename.length();  
int  l2=(int)l1;  
 
//以流的格式赋值  
FileInputStream  fis=new  FileInputStream(filename);  
 
PreparedStatement  ps  =con.prepareStatement(sql);  
ps.setString(1,id);  
ps.setString(2,filename.getName());  
ps.setBinaryStream(3,fis,l2);
//ps.setBinaryStream(3,fis,fis.available());
ps.executeUpdate();  
//ps.execute();
ps.close();  
fis.close();  
out.println("ok!!!");  
%>  
 
第四步:显示图片(ShowImg.jsp)  
 
<%@  page  language="java"  import="java.sql.*"%>
<%@  page  import="java.io.*"%>
<%@  page  contentType="text/html;charset=gb2312"%>  
 
<%
Class.forName("oracle.jdbc.driver.OracleDriver");
String  url="jdbc:oracle:thin:@lubin:1521:b2bdb";
String  image_id  =  (String)  request.getParameter("ID");  
 
Connection  con=DriverManager.getConnection(url,"demo","demo");
PreparedStatement  sql=con.prepareStatement("select  *  from  test_img  WHERE  id  =  "  +  image_id);
ResultSet  rs  =  sql.executeQuery();
 
rs.next();
//输入img字段内容到in  
InputStream  in  =  rs.getBinaryStream("img");
 
//以下可是任何处理,比如向页面输出:
 
response.reset();
//此处的image/jpeg似乎与显示的图片格式无关  
//因为我显示jsp和gif都没有错误。icech不是很懂,都是参考别人的。  
response.setContentType("image/jpeg");
byte[]  b  =  new  byte[1024];
int  len;
while((len=in.read(b))  >0)
response.getOutputStream().write(b,0,len);
 
in.close();
rs.close();
%>  
 

补充:应该采用jspsmartupload才可以实现。
Rijndael密码算法 一 什么是Rijndael Rijndael是由比利时密码学家设计的分组密码算法,于2000年被选为新一代的标准密码算法——AES。今后会有越来越多的密码软件支持这种算法。 Rijndael的分组长度和密钥长度可以分别以32比特为单位在128比特和256比特的范围内进行选择。不过在AES的规格中,分组长度固定为128比特,密钥长度只有128、192和256比特三种。 二 Rijndael的加... 阅读详情

相关推荐

Linux Component概述和高通component的使用

为了让subsystem按照一定顺序初始化设备才提出来的。subsystem中由很多设备模块,内核加载这些模块的时间不确定。子系统内有些模块是需要依赖其它模块先初始化才能进行自己初始化工作(例如v4l2 subdev和v4l2 video device),这时就要用到component框架。例如v4l2 subdev和v4l2 video device中,谁依赖谁先创建?

lz_1990的专栏 1583

Io 异常: End of TNS data channel; nested exception is java.sql.SQLException: Io

[code="java"] 用dblink 连接的远程库,间隔一段时后执行时报下面错误Io 异常: End of TNS data channel; nested exception is java.sql.SQLException: Io 异常: End of TNS data channel ,如果重启服后务问题就消失(但间隔一段时间还会出现),如不重启每交执行还会接着报 org.spr...

iteye_14017的博客 1427

使用python排八字 计算八字的相合相冲五行分值等 ...

简介 八字术是一种古老的算命术。它运用阴阳、五行、干支、八卦等理论,把人的出生年月日时转化为八个字,进而推算人的富贵贫贱、祸福吉凶、穷通寿天、名利地位、家庭六亲等方面的情况 八字源自古代的中国,是一种利用天干和地支来准确记录年、月、日、时的方式,由“年干,年支”、“月干,月支”、“日干,日支”、“时干,时支”,共八个干支所组成(共八个字),年、月、日、时...

weixin_33717298的博客 5279

java.sql.SQLException: End of TNS data channel

在启动应用程序的时候出现这个错误2011-08-08 16:43:50][WARN] Could not obtain connection metadatajava.sql.SQLException: End of TNS d...

515

java.sql.SQLException:IO Exception : End of TNS data channel

Error "IO Exception : End of TNS data channel" When Connecting with Multiple ADDRESS_LIST. (Doc ID 750796.1) To Bottom Modified:28-Aug-2012Type:PROBLEMStatus:PUBLIS

xiaofan23z的专栏 5323

oracle共享服务器创建成功后,通过jdbc连接数被限制,报错:java.sql.SQLException: Io 异常: End of TNS data channel解决方法

错误描述:在对oracle进行了共享服务器的配置后,单独一个用户进程通过共享服务器连接到oracle实例没有任何问题!但是通过jdbc依次创建100个oracle实例的连接(业务系统需要)就会报java.sql.SQLException: Io 异常: End of TNS data channel错误,通过写java程序通过jdbc连接的测试,发现circuits参数决定了同时能通过共享服务器的

Liubinglin的专栏 6599

Linux环境下java程序获取oracle数据库连接超时的问题解决

Linux下运行java程序(jdk 1.7),该程序会获取Oracle数据库连接,为了提高处理速度,采用了多个进程并行启动处理,这时,偶尔会发生数据库连接获取超时失败的异常发生.而且windows环境下没有问题.   java.sql.SQLException: IO Error: End of TNS data channel at oracle.jdbc.driver.T4CCo...

blogzhoubo的博客 2433

oracle 客户端 ora-12162,oracle 连接不上ORA-12162: TNS:net service name is incorrectly specified的另外一种可能原因...

用sqlplus连接oracle数据库时报错:[root@ownsv ~]# sqlplus oracle/password@//10.5.0.7:1521/sspSQL*Plus: Release 11.1.0.7.0 - Production on Thu Jun 26 10:16:21 2014Copyright (c) 1982, 2008, Oracle. All rights res...

weixin_39635084的博客 388

[置顶] 换ojdbc14.jar驱动后clob字段后台报异常的解决

换了新驱动ojdbc14.jar 对某个表进行新增处理时候报错(在jdk1.5下面) 151657 [http-8000-1] ERROR org.springframework.jdbc.support.lob.OracleLobHandler  OracleLobHandler.java 417 - Could not free Oracle LOB java.sql.SQLExceptio

lovepoem的专栏 1011

ORA-12518: TNS:listener could not hand off client connection

ORA-12518: TNS:listener could not hand off client connection

java程序员的蜕变之路 4万+

ORA-12518 TNS:监听程序无法分发客户机连接的解决办法

环境:windows XP +Oracle 10g R2 一、listener文件中的GLOBAL_DBNAME ,SID_NAME可能与实例名称不符,修改后,重启listener. 二、专有服务器模式下processes值设的过小。   可通过以下方法解决: 1.cmd 2.sqlplus 3.connect sys/test as sysdba 4.查看...

weixin_30545285的博客 1111

Caused by: java.sql.SQLException: ORA-12543: TNS: 无法连接目标主机

中间件日志报执行一条很简单的SQL报错,在中间件的机器上telnet数据库服务器都是通的,最后诊断是高级复制导致的,备机关闭了。 update gg_deploye_file set content=?, sync_sign=?, att_syn_flag=?,modify_date=systimestamp where deploye_id=? Caused by: java.sql.SQLEx...

关注系统性能调优 4765

WebLogic部署应用的方式简明列表

WebLogic部署应用的方式简明列表   1、WebLogic中应用可分三种,分别对应不同的描述文件及扩展名或目录结构:

2420

关于MYSQL,ORACLE,MYECLIPSE,Hibernate 设置

除了要安装MYSQL服务器端,还要装mySQL客户端管理软件-SQLyogmyeclipse+oracle配置oracle:启动在WINDOWS服务里面设置,如果忘记密码先建用户,安全性-用户-创建用户,角色选择DBA,点确定,存储-表空间,创建一个表空间,相当于SQL SERVER 数据库,完成后,在方案里随便找个ID建个表,选择自己建的用户名与表空间,完成。 myeclip

1848

问道DBFS资源素材工具

问道DBFS文件解包压缩专用工具

手写字识别-基于Transformer实现手写字文本识别-附项目源码-优质项目实战.zip

手写字识别_基于Transformer实现手写字文本识别_附项目源码_优质项目实战

上一篇: Struts开发指南之MVC架构
下一篇: SQL中CONVERT转化函数的用法
kj110
博客等级 码龄22年 1粉丝 44原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值