小菜用jsp上传附件到数据库,用longblob数据类型保存上传附件,可是出现内容丢失,上传压缩文件下载回来解压也出错,请问是什么原因?谁能给我发个这方面完整的实例么?要求是把附件放到数据库,;我在这里都10几天了也没人给我发,你们太过分了吧
收到经我调试通过马上给分,拜托各位大虾了。
收到经我调试通过马上给分,拜托各位大虾了。
解决方案 »
- jquery ajax的success回调函数不执行
- 关于weblogic集群问题
- 类似于IE收藏夹功能的实现
- JSp页面中读取web.xml中的系统配置参数
- FCKeditor 复制 WORD 文档 空行问题~~~~
- 访问jsp页面,访问到文件夹的时候,怎么让它不显示文件夹里文件列表?
- tomcat5中怎么打印输出servlet中的变量的值?
- jsp和javascript怎么完美结合?
- 高分求JSP+SQLSERVER的电子书。在线等
- 为什么我用javac编译包含javax包的javaBean出错误(jdk1.3 + tomcat4.0)
- 请问如何知道当前使用的JSP和Servlet的版本?
- 求网页二边加入可关闭的对联代码,来者有分..
http://www.5ai7.net/
//将一个空的 blob 对象存入数据库
st1 = cn.createStatement();
st1.executeUpdate("INSERT INTO files (filename,content) VALUES("+filename+",empty_blob())");
//读数据库,获得 blob 对象句柄,将文件数据写入 blob
st = cn.createStatement();
rset = st.executeQuery("select content from picture where filename="+filename);
if (rset.next()){
Blob blob = rset.getBlob(1); //获得 blob 对象句柄
OutputStream blobOs = ( (oracle.sql.BLOB)blob).getBinaryOutputStream();
FileInputStream inStream = new FileInputStream(src);
int length = (int)(new File(src).length());
byte[] buf = new byte[length];
inStream.read(buf);
blobOs.write(buf); // 文件数据写入 blob
blobOs.close();
}
cn.commit();
一切靠自己,如果不能独挡一面的不是个好的程序员
给你给最有用的建议:www.google.cn(屡试不爽,哈哈!) 或 http://java.sun.org
如果还是搞不出来,就跟你的上司说:“我能力有限,这个实在是弄不出来了。”
public static int doInsert(Connection conn,String cdoc_name,String cdoc_time,String cdoc_dept ,String address,String cdoc_type)throws Exception{
if(address==null){
return -1;
}
int ini=GetMaxID.getMaxID(conn,"document");
String cdoc_no=Integer.valueOf(ini).toString();
File file=new File(address);
FileInputStream fis=new FileInputStream(file);
int itn=0;
StringBuffer sb=new StringBuffer("insert into document(CDOC_NO,CDOC_NAME,CDOC_TIME,CDOC_DEPT,BDOC_CONTENT,CDOC_TYPE) values('");
sb.append(cdoc_no+"','");
sb.append(cdoc_name+"','");
sb.append(cdoc_time+"','");
sb.append(cdoc_dept+"',");
sb.append("?,'");
sb.append(cdoc_type+"')");
System.out.println(sb);
PreparedStatement pstmt=null;
try{
pstmt = conn.prepareStatement(sb.toString());
pstmt.setBinaryStream(1,fis,fis.available());
itn = pstmt.executeUpdate();
}catch(Exception e){
//LogServlet.error(e.getMessage());
return -1;
}
finally{
if(pstmt!=null)
pstmt.close();
}
file.deleteOnExit();
return itn;
}
保存到文件同样可以跨平台啊~~楼主:要学会用baidu,google~~
第一次插入除了longblob以外的其他字段值,
第二次通过读字节流的方式更新该条记录的longblob字段。
大家有没有更好的解决方案?可以拿出来讨论一下