关于图片上传到服务器并保存到数据库然后读出显示到页面上的一系列例子.docx
《关于图片上传到服务器并保存到数据库然后读出显示到页面上的一系列例子.docx》由会员分享,可在线阅读,更多相关《关于图片上传到服务器并保存到数据库然后读出显示到页面上的一系列例子.docx(10页珍藏版)》请在冰点文库上搜索。
关于图片上传到服务器并保存到数据库然后读出显示到页面上的一系列例子
关于图片上传到服务器并保存到数据库,然后读出显示到页面上的一系列例子
.cn/s/blog_4b8712eb010007zx.html
(2007-02-0309:
08:
23)
转载▼
分类:
JAVA
一、addImg.jsp类似网易邮箱的多附件上传,无刷新动态添加
<%@pagelanguage="java"contentType="text/html;charset=gbk"
pageEncoding="gbk"
import=",,,java.util.*"%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
<%
Stringpath=request.getContextPath();
BookDAObdao=newBookDAO();
Bookb=newBook();
Listbooklist=bdao.findAll();
if(booklist==null||booklist.size()==0){
booklist=newArrayList();
}
%>
functionaddUploadFile(){
var_table=document.getElementByIdx("uploadTable");
varrowIndex=_table.getElementsByTagName_r("tr").length-1;
var_tr=_table.insertRow(rowIndex);
var_td1=_tr.insertCell(0);
var_td2=_tr.insertCell
(1);
var_td3=_tr.insertCell
(2);
_tr.bgColor='#E1E8F4';
_tr.setAttribute("height","27");
_tr.setAttribute("id",rowIndex.toString());
_td1.setAttribute("width","15%");
_td1.setAttribute("align","center");
_td2.setAttribute("align","left");
_td2.setAttribute("colspan","2");
_td3.setAttribute("width","5%");
vartd1='图片';
vartd2='100%;font-size:
12px;border:
1pxsolid#555555;">';
vartd3='';
_td1.appendChild(document.createTextNode(td1));
_td2.appendChild(document.createElement(td2));
_td3.appendChild(document.createElement(td3));
}
functiondelUploadFile(fileIndex){
if(confirm('确定要删除么?
')){
var_table=document.getElementByIdx("uploadTable");
_table.deleteRow(document.getElementByIdx(fileIndex.toString()).rowIndex);
}
}
functionsubmitPage(){
varform=document.getElementByIdx("form1");
varflag=0;
for(i=0;i<"input").length;i++){
if("input")[i].type=="file"){
if("input")[i].value==""){
alert("请不要有空的上传文件框")
flag=1;
}
}
}
if(flag==0){
form.submit();
}
}
|
上传文件信息
|
对应文档
100%;font-size:
12px;border:
1pxsolid#555555;">
来自书目
<%
for(inti=0;i b=(Book)booklist.get(i);
%>
"><%=b.getName()%>
<%
}
%>
开始页码
100%;font-size:
12px;border:
1pxsolid#555555;">
图片
100%;font-size:
12px;border:
1pxsolid#555555;">
二、UploadImage.servletdoPost方法
//实例化上载bean
mySmartUpload=new;
//初始化
mySmartUpload.initialize(this.getServletConfig(),request,response);
request.setCharacterEncoding("gbk");
//设置上载的最大值
mySmartUpload.setMaxFileSize(500*1024*1024);
//上载文件
try{
mySmartUpload.upload();
}catch(SmartUploadExceptione){
//TODO自动生成catch块
e.printStackTrace();
}
//循环取得所有上载的文件
for(inti=0;i //取得上载的文件
myFile=mySmartUpload.getFiles()
.getFile(i);
if(!
myFile.isMissing()){
//取得上载的文件的文件名
StringmyFileName=myFile.getFileName();
//取得不带后缀的文件名
Stringsuffix=myFileName.substring(0,myFileName
.lastIndexOf('.'));
//取得后缀名
Stringext=mySmartUpload.getFiles().getFile(0)
.getFileExt();
//取得文件的大小
intfileSize=myFile.getSize();
//保存路径
Stringaa=getServletContext().getRealPath("/")+"jsp\\";
;
Stringtrace=aa+myFileName;
//取得别的参数
// Stringexplain=(String)mySmartUpload.getRequest()
// .getParameter("text");
// Stringsend=(String)mySmartUpload.getRequest()
// .getParameter("send");
StringsBook_id=(String)mySmartUpload.getRequest().getParameter("book_id");
"bookidis"+sBook_id);
intiBook_id=0;
if(sBook_id!
=null&&sBook_id.trim().length()!
=0){
iBook_id=Integer.parseInt(sBook_id);
}
StringsFile_id=(String)mySmartUpload.getRequest().getParameter("file_id");
"file_idis"+sFile_id);
intiFile_id=0;
if(sFile_id!
=null&&sFile_id.trim().length()!
=0){
iFile_id=Integer.parseInt(sFile_id);
}
StringsStartPage_no=(String)mySmartUpload.getRequest().getParameter("start_page_no");
intiStartPage_no=0;
if(sStartPage_no!
=null&&sStartPage_no.trim().length()!
=0){
iStartPage_no=Integer.parseInt(sStartPage_no);
}
intiPage_no=0;
if(iStartPage_no!
=0)
{iPage_no=iStartPage_no+i;}
//将文件保存在服务器端
try{
myFile.saveAs(trace,mySmartUpload.SAVE_PHYSICAL);
}catch(SmartUploadExceptione){
e.printStackTrace();
}
//下面的是将上载的文件保存到数据库中
//将文件读到流中
file=new;
fis=new
file);
;
//打开数据库
Imageimage=newImage(0,iFile_id,fis,iBook_id,
iPage_no);
ImageDAOidao=newImageDAO();
idao.add(image);
}
}
}
到此,图片就已经存进数据库了,接着看怎么把他显示到页面上
三、showImage()servlet中使用
privatevoidShowImage(Stringid,HttpServletRequestrequest,
HttpServletResponseresponse)throwsIOException{
Connectionconn=null;
finalStringCONTENT_TYPE="image/*";
ResultSetrs=null;
Statementstmt=null;
StringSQLString="";//定义查询语句
StringM_EorrMenage="";//定义错误信息变量
InputStreamin=null;//定义输入流
intlen=10*1024*1024;//定义字符数组长度
//Initializeglobalvariables
response.setContentType(CONTENT_TYPE);
//PrintWriterout=response.getWriter();
try{
SQLString="select*fromimagewhereid="+id;
}catch(Exceptione){
e.printStackTrace();
response.setContentType("text/html;charset=gbk");
M_EorrMenage="请输入图片ID号";
M_EorrMenage=newString(M_EorrMenage.getBytes("ISO8859_1"),"GBK");
//out.println("<%@pagecontentType='text/html;charset=gbk'%>");
//out.println("");
//out.println("
id");
//out.println("
");
//out.println("
"+M_EorrMenage+"
");
//out.println("");
}
try{
conn=DBConnection.newInstacne().getConnection();
stmt=conn.createStatement();
rs=stmt.executeQuery(SQLString);
}catch(SQLExceptionex){
"aq.executeUpdate:
"+ex.getMessage());
M_EorrMenage="对不起,数据库无法完成此操作!
";
M_EorrMenage=newString(M_EorrMenage.getBytes("ISO8859_1"),"GBK");
response.setContentType("text/html;charset=gb2312");
//out.println("");
//out.println("
no_database");
//out.println("
");
//out.println("
"+M_EorrMenage+"
");
//out.println("");
}
try{
if(rs.next()){
in=rs.getBinaryStream("pic");
response.reset();//返回在流中被标记过的位置
response.setContentType("image/jpg");//或gif等
//intlen=in.available();//得到文件大小
OutputStreamtoClient=response.getOutputStream();
byte[]P_Buf=newbyte[len];
inti;
while((i=in.read(P_Buf))!
=-1){
toClient.write(P_Buf,0,i);
}
in.close();
toClient.flush();//强制清出缓冲区\\r
toClient.close();
}else{
M_EorrMenage="无此图片!
";
M_EorrMenage=newString(M_EorrMenage.getBytes("ISO8859_1"),
"GBK");
response.setContentType("text/html;charset=gb2312");
//out.println("");
//out
//.println("
thisphotoisn\'t //have
");
//out.println("
");
//out.println("
"+M_EorrMenage+"
");
//out.println("");
}
rs.close();
}catch(Exceptione){
e.printStackTrace();
M_EorrMenage="无法读取图片!
";
M_EorrMenage=newString(M_EorrMenage.getBytes("ISO8859_1"),"GBK");
response.setContentType("text/html;charset=gb2312");
//out
//.println("<%@pagecontentType=\'text/html;charset=gb2312\'
//%>");
//out.println("");
//out.println("
nophoto");
//out.println("
");
//out.println("
"+M_EorrMenage+"
");
//out.println("");
}
try{
conn.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
四、显示图片到页面上
在任何想使用图片的