亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

簡介jsp上傳組件smartupload

2024-09-05 00:17:13
字體:
來源:轉載
供稿:網友
   jsp對上傳文件的支持不象php中支持的那么好,直接做成了函數,也不象asp中要通過組件才能實現。jsp中可以通過javabean來實現。但是我們沒有必要自己去寫一個上載的bean,在網上已經有了很多成型的技術,smartupload就是其中的一個。但是smartupload是將文件先讀到服務器的內存中,所以上傳太大的文件(超過100兆)有可能會出問題,也算是一個美中不足吧:) 
   先說一下提交的頁面,smartupload組件要求用字節流的方式來提交<FORM action="upload.jsp"  encType=multipart/form-data method=post>。下面就是個例子upload.htm:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0057)http://localhost:8080/jspsmartfile/jsp/uploadTemplate.jsp -->
<HTML><HEAD>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<META content="MSHTML 5.00.2920.0" name=GENERATOR></HEAD>
<BODY bgColor=#e6e6e6><BR>
<FORM action="upload.jsp"  encType=multipart/form-data method=post>
<TABLE>
  <TBODY>
  <TR>
    <TD><FONT color=#000000 face=helv,helvetica size=1>&nbsp;&nbsp;File  
      :&nbsp;</FONT>&nbsp;&nbsp;<INPUT  size=60 type=file  name="file"></TD></TR>
        <TR>
    <TR>
    <TD><FONT color=#000000 face=helv,helvetica size=1>&nbsp;&nbsp;File  
      :&nbsp;</FONT>&nbsp;&nbsp;<INPUT  size=60 type=file  name="file1"></TD></TR>
        <TR>  
    <TD><FONT color=#000000 face=helv,helvetica size=1>&nbsp;&nbsp;File  
      :&nbsp;</FONT>&nbsp;&nbsp;<INPUT  size=60 type=text  name="text"></TD></TR>
  <TR>
    <TD 
align=right><INPUT type=submit value=Send name="send"></TD></TR></TBODY></TABLE></FORM></BODY></HTML>

  再來看一下接收的頁面 ,我們把文件上傳到服務器以后就直接把它再存入數據庫中:upload.jsp
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<%@ page import="com.jspsmart.upload.*" %>
<%@ page import="DBstep.iDBManager2000.*"%>
<%
   //實例化上載bean
    com.jspsmart.upload.SmartUpload mySmartUpload=new com.jspsmart.upload.SmartUpload();
    //初始化
    mySmartUpload.initialize(pageContext); 
    //設置上載的最大值
    mySmartUpload.setMaxFileSize(500 * 1024*1024);
    //上載文件
    mySmartUpload.upload();
   //循環取得所有上載的文件
   for (int i=0;i<mySmartUpload.getFiles().getCount();i++){
   //取得上載的文件
   com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(i);
   if (!myFile.isMissing())
    {
   //取得上載的文件的文件名
    String myFileName=myFile.getFileName();
    //取得不帶后綴的文件名
    String  suffix=myFileName.substring(0,myFileName.lastIndexOf(’.’));
    //取得后綴名
    String  ext= mySmartUpload.getFiles().getFile(0).getFileExt();  
    //取得文件的大小  
    int fileSize=myFile.getSize();
    //保存路徑
    String aa=getServletContext().getRealPath("/")+"jsp//";
    String trace=aa+myFileName;
    //取得別的參數
    String explain=(String)mySmartUpload.getRequest().getParameter("text");
    String send=(String)mySmartUpload.getRequest().getParameter("send");
    //將文件保存在服務器端 
    myFile.saveAs(trace,mySmartUpload.SAVE_PHYSICAL);
    //下面的是將上載的文件保存到數據庫中
    //將文件讀到流中 
    java.io.File file = new java.io.File(trace);
    java.io.FileInputStream fis = new java.io.FileInputStream(file);
  out.println(file.length());
   //打開數據庫
   ResultSet result=null;
   String mSql=null;
   PreparedStatement prestmt=null; 
   DBstep.iDBManager2000 DbaObj=new DBstep.iDBManager2000();
   DbaObj.OpenConnection();
   //將文件寫到數據庫中
   mSql="insert into marklist (markname,password,marksize,markdate,MarkBody) values (?,?,?,?,?)";
   prestmt =DbaObj.Conn.prepareStatement(mSql);
   prestmt.setString(1, "aaa1");
   prestmt.setString(2, "0000");
   prestmt.setInt(3, fileSize);
   prestmt.setString(4, DbaObj.GetDateTime());
   prestmt.setBinaryStream(5,fis,(int)file.length());
   DbaObj.Conn.setAutoCommit(true) ;
   prestmt.executeUpdate();
   DbaObj.Conn.commit();
   out.println(("上載成功!??!").toString());
   }
   else 
   { out.println(("上載失?。。?!").toString()); } 
   }//與前面的if對應
%>

   再說一下下載,下載分兩種情況1。從數據庫直接下載2。從服務器上下載

  先說從數據庫直接下載的情形:就是把輸入流從數據庫里讀出來,然后轉存為文件

<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="java.sql.*"%>
<%@ page import="java.io.*" %>
<%@ page import="DBstep.iDBManager2000.*"%>
<%
    int bytesum=0;
    int byteread=0;
  //打開數據庫
  ResultSet result=null;
  String Sql=null;
  PreparedStatement prestmt=null; 
  DBstep.iDBManager2000 DbaObj=new DBstep.iDBManager2000();
  DbaObj.OpenConnection();
//取得數據庫中的數據
Sql="select  *  from  t_local_zhongzhuan ";
result=DbaObj.ExecuteQuery(Sql);
result.next();

//將數據庫中的數據讀到流中 
InputStream inStream=result.getBinaryStream("content"); 
FileOutputStream fs=new FileOutputStream( "c:/dffdsafd.doc");

  byte[]  buffer =new  byte[1444];
int length;
    while ((byteread=inStream.read(buffer))!=-1)
    {
       out.println("<DT><B>"+byteread+"</B></DT>");
       bytesum+=byteread;
       System.out.println(bytesum);
    
    
       fs.write(buffer,0,byteread);
     }
%>

再說從服務器上下載的情形:

<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="java.io.*" %>
<%
  String fileName = "zsc104.swf".toString();
f//讀到流中
InputStream inStream=new FileInputStream("c:/zsc104.swf");
//設置輸出的格式 
  response.reset(); 
  response.setContentType("bin");
  response.addHeader("Content-Disposition","attachment; filename=/"" + fileName + "/"");
//循環取出流中的數據 
  byte[] b = new byte[100]; 
  int len; 
  while((len=inStream.read(b)) >0) 
  response.getOutputStream().write(b,0,len);  
  inStream.close(); 
%> 
好了,到這里只要不是太大的文件的上傳下載的操作都可以完成了。 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美午夜精品伦理| 欧美一级bbbbb性bbbb喷潮片| 国产精品大陆在线观看| 国产综合视频在线观看| 国产精品久久久久久久久久久新郎| 久久精品国产成人| 成人福利在线观看| 欧美激情喷水视频| 欧美日韩午夜视频在线观看| 亚洲欧美资源在线| 久久久久国产一区二区三区| 日韩在线观看免费网站| 黑人巨大精品欧美一区二区免费| 精品无人区太爽高潮在线播放| 欧美激情乱人伦| 欧美日韩中文字幕| 欧美在线亚洲在线| 欧美乱人伦中文字幕在线| 国产性猛交xxxx免费看久久| 欧美激情精品久久久| 夜夜嗨av色一区二区不卡| 亚洲人成网在线播放| 成人免费视频在线观看超级碰| 成人免费直播live| 久久精品国产96久久久香蕉| 欧美日韩午夜激情| 久久综合久久美利坚合众国| 国产激情视频一区| 午夜精品久久久久久99热软件| 尤物精品国产第一福利三区| 亚洲自拍偷拍一区| 欧美精品成人91久久久久久久| 欧美xxxx14xxxxx性爽| 亚洲专区国产精品| 日本免费在线精品| 97人人做人人爱| 91久久国产精品| 97超级碰碰人国产在线观看| 国产精品白嫩美女在线观看| 亚洲va欧美va在线观看| 色吧影院999| 尤物九九久久国产精品的分类| 亚洲最大成人免费视频| 欧美成人精品一区二区三区| 日韩精品中文字| 亚洲国产小视频在线观看| 国产日产欧美a一级在线| 在线精品视频视频中文字幕| 亚洲香蕉伊综合在人在线视看| 岛国av在线不卡| 国产成人一区三区| 中文字幕v亚洲ⅴv天堂| 国产精品日韩欧美综合| 久久99久久久久久久噜噜| 国产精品自在线| 8050国产精品久久久久久| 欧美成人免费在线视频| 国产成人精彩在线视频九色| 国产丝袜视频一区| 精品国偷自产在线视频99| 国产999精品视频| 91最新国产视频| 91精品国产色综合久久不卡98| 成人国产亚洲精品a区天堂华泰| 久久欧美在线电影| 日韩va亚洲va欧洲va国产| 精品福利樱桃av导航| 日本精品免费一区二区三区| 国产精品av免费在线观看| 色悠悠久久久久| 欧美性猛交xxxx免费看漫画| 欧美性猛交xxxx久久久| 91伊人影院在线播放| 日韩欧美高清视频| 社区色欧美激情 | 久久精品国产亚洲| 91理论片午午论夜理片久久| 国产午夜精品视频免费不卡69堂| 伦伦影院午夜日韩欧美限制| 日本精品视频在线播放| 亚洲国产另类久久精品| 丰满岳妇乱一区二区三区| 粉嫩av一区二区三区免费野| 最近2019好看的中文字幕免费| 欧美香蕉大胸在线视频观看| 成人两性免费视频| 精品亚洲va在线va天堂资源站| 美女啪啪无遮挡免费久久网站| 国产精品露脸自拍| 91福利视频网| 亚洲电影免费观看高清| 久久久视频精品| 精品国产电影一区| 亚洲国产精品久久久久秋霞蜜臀| 欧美午夜性色大片在线观看| 亚洲电影免费观看高清完整版在线| 亚洲人成网站777色婷婷| 欧美福利视频在线观看| 国产专区欧美专区| 久久香蕉精品香蕉| 精品无人区乱码1区2区3区在线| 性欧美长视频免费观看不卡| 欧美激情欧美狂野欧美精品| 久久精品国产成人精品| 91免费综合在线| 正在播放欧美视频| 国产z一区二区三区| 中文字幕国产亚洲2019| 久久全球大尺度高清视频| 国产精品主播视频| 欧美日韩综合视频网址| 精品国产一区二区三区久久久狼| 日本国产欧美一区二区三区| 久久久亚洲欧洲日产国码aⅴ| 欧美性xxxx极品hd满灌| 欧美又大粗又爽又黄大片视频| 国产盗摄xxxx视频xxx69| 在线一区二区日韩| 国产一区二区三区丝袜| 日韩欧美国产中文字幕| 亚洲成人网久久久| 亚洲一区第一页| 欧美裸体xxxx极品少妇| 亚洲a在线播放| 国产精品91视频| 国产亚洲成精品久久| 97超碰色婷婷| 97国产精品免费视频| 欧美视频中文在线看| 久久av中文字幕| 欧美在线视频播放| 国产在线视频91| 九九热精品在线| 一本一道久久a久久精品逆3p| 国产精品一区二区女厕厕| 欧美高清自拍一区| 国产成人小视频在线观看| 成人国产亚洲精品a区天堂华泰| 日韩久久午夜影院| 久久综合免费视频影院| 国产精品久久久久国产a级| 97在线看免费观看视频在线观看| 亚洲毛片在线观看.| 成人精品aaaa网站| 日韩黄色在线免费观看| 国产美女被下药99| 欧美激情亚洲综合一区| 亚洲天堂男人天堂女人天堂| 亚洲精品视频久久| 97超碰蝌蚪网人人做人人爽| 日本欧美国产在线| 国产拍精品一二三| 亚洲精品国精品久久99热一| 日韩亚洲综合在线| 欧美视频免费在线| 欧美一区二区三区艳史| 欧美贵妇videos办公室| 亚洲国产天堂久久综合网| 国产亚洲精品日韩| 国产精品亚洲网站| 欧美一区二区视频97| 欧美激情欧美激情| 欧美国产日韩一区二区| 亚洲综合日韩中文字幕v在线|