文件上傳使用:http://www.javazoom.net 的 UploadBean JAVA包,他的文件上傳做的還不錯,可進行目錄或數(shù)據(jù)庫的文件上傳,默認(rèn)使用的是Oracle 的LONGRAW子段類型,可使用BLOB類型,但需要使用擴展JAVA包,LONGRAW子段最大長度為2GB,并且一個表內(nèi)只答應(yīng)出現(xiàn)一個LONGRAW型子段,                                                                                            不過已經(jīng)夠我用了,而BLOB型子段最大為4GB,而且沒有表中出現(xiàn)次數(shù)的限制。備注:想用他下載的組件Download4J 1.0,我勸還是別做夢了,在功能上不太適合用在數(shù)據(jù)庫下載。 
     文件下載使用的是:http://www.jspsmart.com的SmartUpload JAVA包,該包即可以文件上傳,也可以文件下在,而且使用也比較方便,不過我在這里只使用文件從數(shù)據(jù)庫下載功能,有愛好的朋友可以試試。 
      下面我把使用這兩個包的源CODE給大家說一下,以后大家碰道這些問題就不用象我一樣發(fā)愁了,哎!多偉大的人呀!大家給點掌聲安慰我這個受傷的孤獨男人吧! 
      文件上傳: 
實際上這些JAVA包都有使用的例子,不過我還是要貼出來。  
文件名:ChineseDatabaseUpload.jsp 
文件內(nèi)容: 
<Html> 
<%@ page language="java" contentType="text/html; charset=gb2312" import="javazoom.upload.*,java.util.*" %> 
<%@ page errorPage="ExceptionHandler.jsp" %> 
<jsp:useBean id="upBean" scope="application" class="javazoom.upload.UploadBean" > 
  <% 
PRoperties props = new Properties(); 
props.put("user","cepic"); 
props.put("passWord","lpsc"); 
upBean.setDatabasestore("oracle.jdbc.driver.OracleDriver","jdbc:oracle:thin:@10.231.234.252:1521:cepic",props); //數(shù)據(jù)庫連接 
%> 
</jsp:useBean> 
<head> 
<title>中文上傳</title> 
<meta http-equiv="Content-Type" content="text/html; charset="gb2312"> 
</head> 
<body bgcolor="#FFFFFF" text="#000000"> 
<ul><font size="-1" face="Verdana, Arial, Helvetica, sans-serif"> 
<% 
request.setCharacterEncoding("gb2312"); 
if (MultipartFormDataRequest.isMultipartFormData(request)) 
{ 
// Uses MultipartFormDataRequest to parse the HTTP request. 
MultipartFormDataRequest mrequest = new MultipartFormDataRequest(request,null,100*1024*1024,MultipartFormDataRequest.COSPARSER,"gb2312"); 
String todo = mrequest.getParameter("todo"); 
  if ( (todo != null) && (todo.equalsIgnoreCase("upload")) ) 
  { 
Hashtable files = mrequest.getFiles(); 
if ( (files != null)  (!files.isEmpty()) ) 
{ 
UploadFile file = (UploadFile) files.get("uploadfile"); 
out.println("<li>Form field(表格欄): uploadfile"+"<BR> Uploaded file(已上傳的文件名稱): "+file.getFileName()+" ("+file.getFileSize()+" bytes)"+"<BR> Content Type(文件類別)"+file.getContentType()); 
//out.println("<li>Form field: uploadfile"+"<BR> Uploaded file: "+file.getFileName()+" ("+file.getFileSize()+" bytes)"+"<BR> Content Type"+file.getContentType()); 
    // Uses the bean now to store specified by jsp:setProperty at the top. 
upBean.store(mrequest, "uploadfile"); 
} 
else 
{ 
out.println("<li>No uploaded files"); 
} 
out.println("<BR> gb2312 Text(簡體) = "+mrequest.getParameter("gb2312txt")); 
     } 
else out.println("<BR> todo="+todo); 
} 
%> 
</font></ul> 
<form method="post" action="ChineseDatabaseUpload.jsp" name="upform" enctype="multipart/form-data"> 
  <table width="60%" border="0" cellspacing="1" cellpadding="1" align="center"> 
    <tr> 
      <td align="left"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif"><b>請選擇上傳文件:</b></font></td> 
    </tr> 
    <tr> 
      <td align="left"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif"> 
        <input type="file" name="uploadfile" size="50"> 
        </font></td> 
    </tr> 
    <tr> 
      <td align="left"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif"> 
        gb2312 text: 
        <input type="text" name="gb2312txt" size="20"> 
        </font></td> 
    </tr> 
    <tr> 
      <td align="left"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif"> 
    <input type="hidden" name="todo" value="upload"> 
        <input type="submit" name="Submit" value="上傳"> 
        <input type="reset" name="Reset" value="取消"> 
        </font></td> 
    </tr> 
  </table> 
  <br> 
  <br> 
  <table width="90%" border="0" cellspacing="1" cellpadding="0" align="center"> 
    <tr> 
      <td bgcolor="#666666"> 
        <table width="100%" border="0" cellspacing="1" cellpadding="0" align="center"> 
          <tr> 
            <td bgcolor="#FFFFFF"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif"><b><font color="#0000FF"> Needed 
              HTML tags :</font></b></font></td> 
          </tr> 
          <tr> 
            <td bgcolor="#FFFFFF"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif"> <<b>form</b> 
              <b>method</b>="<b><font color="#FF0000">post</font></b>" 
              <b>action</b>="<b><font color="#FF0000">ChineseUpload.jsp</font></b>" 
              name="upload" <b>enctype</b>="<b><font color="#FF0000">multipart/form-data</font></b>"></font></td> 
          </tr> 
          <tr> 
            <td bgcolor="#FFFFFF"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif"> <<b>input</b> 
              <b>type</b>="<b><font color="#FF0000">file</font></b>" 
              <b>name</b>="<font color="#FF0000"><b>uploadfile</b></font>" 
              size="50"></font></td> 
          </tr> 
        </table> 
      </td> 
    </tr> 
  </table> 
  <p> </p> 
  <p> </p> 
  <p align="center"> </p> 
  <p align="center"> </p> 
  <p align="center"> </p> 
  <p align="center"> </p> 
</form> 
</body> 
</html> 
該ORACLE的表結(jié)構(gòu),在該網(wǎng)站上找吧!很簡單就三個子段而已。
                          
文件下載: 
文件名:jspsmartdownload.jsp 
文件內(nèi)容: 
<meta http-equiv="Content-Type" content="application/msword; charset=gb2312"> //注重這里,假如你沒有設(shè)置成“GB2312”結(jié)果你會明白的。 
<%@ page language="java" import="java.sql.*,com.jspsmart.upload.*"%> 
<jsp:useBean id="mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload" /> 
<% 
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); 
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@10.231.234.252:1521:cepic", "cepic", "lpsc"); 
Statement stmt = con.createStatement(); 
ResultSet rs = stmt.executeQuery("SELECT * FROM UPLOADS"); 
if (rs.next()){ 
mySmartUpload.initialize(pageContext); 
mySmartUpload.downloadField(rs,"BINARYFILE","application/msword",""); 
//mySmartUpload.fieldToFile(rs,"BINARYFILE","c:/sample.DOC"); 
} 
rs.close(); 
stmt.close(); 
con.close(); 
%>