热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

通过SmartUpload把图片或者附件上传到mssqlserver数据库的具体方法》

目标是想提交增加一条记录,(比如一条新闻含图片或者含附件(主要是含表格)),比如数据库字段就有ID和pic两个(可以先拿简单的两个字段练习),ID为int,pic为image类型,想插入一个图片(
目标是想提交增加一条记录,(比如一条新闻含图片或者含附件(主要是含表格)),比如数据库字段就有ID和pic 两个(可以先拿简单的两个字段练习),ID 为int,pic为image类型,想插入一个图片(一条新闻中可插入多个图片,又怎样做?),和如何显示图片的具体做法,具体代码,谢谢。
数据库为ms sqlserver2000

提交页面为:







 


上传文件选择


ENCTYPE="multipart/form-data">

  
     
      1、 
          
        

    
     
      2、 
          
        

    
     
      3、 
          
        

    
     
      4、 
          
        
    
     
      
          
        
    
  




do_upload.jsp具体应该怎样写?(数据库的bean已经有了)
急盼!!!!!


13 个解决方案

#1


我用的是sqlserver理论是一样的
<%@ page cOntentType="text/html; charset=GBK" %>
<%@ page import="com.jspsmart.upload.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.io.*"%>

<%

mySmart.initialize(pageContext);
mySmart.upload();

com.jspsmart.upload.File myFile=mySmart.getFiles().getFile(0);
//if(!myFile.isMissing()){
//String name=myFile.getFileName();
String picName=mySmart.getRequest().getParameter("id");
String pathName=myFile.getFilePathName();
//out.println(picName);
out.println(pathName);

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=furom";
//test你的数据库的
String user="sa";
String password="system";
Connection cOnn= DriverManager.getConnection(url,user,password);
PreparedStatement pstmt=conn.prepareStatement("insert into pics(name,pic) values(?,?)");
java.io.File picfile=new java.io.File(pathName);
FileInputStream in=new FileInputStream(picfile);
pstmt.setString(1,name);
pstmt.setBinaryStream(2,in,in.available());
int num=pstmt.executeUpdate();
out.println("成功插入"+num+"行
返回
");
pstmt.clearParameters();
pstmt.close();
conn.close();


%>
自己慢慢琢磨对你有好处,我也弄了几天才好的呵呵,goodluck !

#2


如何显示图片呢?

#3


上传图片已经搞定!显示图片还没有搞定,遇到了一些问题,不能正常显示图片。
showpic.jsp  

<%@ page import="java.sql.*"%>
<%@ page import="java.io.*"%>









<%@ page cOntentType="text/html; charset=GBK" %>

<%
String id,sql;
id=request.getParameter("1");
sql="select image from pic where id="+id;
ResultSet rs=sqlbean.executeQuery(sql);
byte[] Buffer=new byte[1024*10];
int iSize;
while (rs.next()){
InputStream InData=rs.getBinaryStream("image");
OutputStream outData=response.getOutputStream();
while((iSize=InData.read(Buffer,0,Buffer.length))>0)
outData.write(Buffer,0,iSize);
outData.flush();
//InData.close;
rs.close();
}

%>
>
<%out.println("你好!");%>





如何显示多张图片(ID号相同)?PreparedStatement和Statement有何不同,输入流和输出流必须用PreparedStatement吗?因为我的数据库连接的bean中用的是Statement,如果用我的数据库连接bean的话,输入流的关闭语句好象不认识,他要求用PreparedStatement,郁闷,期盼!!

#4


#5


修改了一些,为何只能显示第一张图片?(多张图片已经上传到数据库中了,已看到数据)

<%@ page import="java.sql.*"%>
<%@ page import="java.io.*"%>









<%@ page cOntentType="text/html; charset=GBK" %>


<%
String id,sql;
id=request.getParameter("1");
sql="select image from pic where id=1";
ResultSet rs=sqlbean.executeQuery(sql);
byte[] Buffer=new byte[1024*10];
int iSize;
while (rs.next()){
InputStream InData=rs.getBinaryStream("image");
OutputStream outData=response.getOutputStream();
while((iSize=InData.read(Buffer,0,Buffer.length))>0)
outData.write(Buffer,0,iSize);
outData.flush();
//InData.close;
rs.close();
}
%>
<%out.println("你好!");%>




还有,<%out.println("你好!");%>这一句为何没有执行结果?

#6


#7


大家帮帮忙吧

#8


#9


是都显示了,但是你的位置在同一个地方,也就是说图片重叠了!!给分给分!!

#10


给分好办,那怎么处理啊

#11


要是图片重叠的话,应该上传多张图片后,显示的是最后一张图片啊,但现在显示的却是第一张图片。
怎么办呢,

#12


循环位置要怎样改动呢

<%@ page import="java.sql.*"%>
<%@ page import="java.io.*"%>









<%@ page cOntentType="text/html; charset=GBK" %>


<%
String id,sql;
id=request.getParameter("1");
sql="select image from pic where id=1";
ResultSet rs=sqlbean.executeQuery(sql);
byte[] Buffer=new byte[1024*10];
int iSize;
while (rs.next()){
InputStream InData=rs.getBinaryStream("image");
OutputStream outData=response.getOutputStream();
while((iSize=InData.read(Buffer,0,Buffer.length))>0)
outData.write(Buffer,0,iSize);
outData.flush();
response.flushBuffer();
//InData.close;
%>




<%
}
rs.close();
%>
<%out.println("你好!");%>


#13



ok

推荐阅读
author-avatar
外事一棵葱_712
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有