当前位置:首页>>开发编程>>JAVA>>新闻内容
用JAVA实现ORACLE的文件上传和下载
作者:goldoutlook 发布时间:2003-10-7 14:34:53 文章来源:csdn
      我在做项目!现在的变态太多了,用JAVA好象能显示出无比的能力,用微软好象就是白痴,实际上用什么东西都无所未,就是有人想不通,非逼着咱用JAVA5555555555,我好可怜,问题一个个的出现,一个比一个难以解决,最后终于碰到了,最棘手的问题,就是文件的上传和下载了。

      
哎!要是微软的东东,那还有什么问题,简单的不得了呀!可是这个该死的JAVA什么都好,就是不好用,没有办法,我用了三天才把他给搞定,3个不眠之夜呀!

      
使用了两个免费得JAVA包,本来想用一个就应该能搞定,谁知道,难呀!
这些包都是老外得东东,为什么中国人自己写不出了,哎!也难怪了,谁叫中国人聪明呢!用现成得,嘿嘿。。。反正不掏钱。 

     
我最后决定使用的是,文件上传使用:http://www.javazoom.net UploadBean JAVA包,他的文件上传做的还不错,可进行目录或数据库的文件上传,默认使用的是ORACLE LONGRAW子段类型,可使用BLOB类型,但需要使用扩展JAVA包,LONGRAW子段最大长度为2GB,并且一个表内只允许出现一个LONGRAW型子段,不过已经够我用了,而BLOB型子段最大为4GB,而且没有表中出现次数的限制。备注:想用他下载的组件Download4J 1.0,我劝还是别做梦了,在功能上不太适合用在数据库下载。

     
文件下载使用的是:http://www.jspsmart.comSmartUpload JAVA包,该包即可以文件上传,也可以文件下在,而且使用也比较方便,不过我在这里只使用文件从数据库下载功能,有兴趣的朋友可以试试。

      
下面我把使用这两个包的源CODE给大家说一下,以后大家碰道这些问题就不用象我一样发愁了,哎!多伟大的人呀!大家给点掌声安慰我这个受伤的孤独男人吧!

      
文件上传:
实际上这些JAVA包都有使用的例子,不过我还是要贴出来。 
文件名:ChineseDatabaseUpload.jsp
文件内容:
<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); //
数据库连接
%>

</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的表结构,在该网站上找吧!很简单就三个子段而已。

文件下载:
文件名:jspsmartdownload.jsp
文件内容:
<meta http-equiv="Content-Type" content="application/msword; charset=gb2312"> //
注意这里,如果你没有设置成“GB2312”结果你会明白的。
<%@ 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();
%>
     
呵呵。。。好了终于完工了,希望大家能用的上,哎!年轻一点真好呀!

最新更新
·Java开发技术十年的回顾与展
·关于TOMCAT主目录与虚拟目录
·用java程序调用ffmpeg执行视
·JavaBean与Enterprise JavaB
·Java开发人员的十大戒律
·JavaFX Script将终结AJAX?还
·解决IE中所有png图片透明问题
·JSP解决地址栏中传递中文字符
·Eclipse五岁了:Java程序员的
·审查Java代码的十一种常见错
相关信息
放生
愚爱
够爱
触电
白狐
心跳
知足
犯错
降临
分爱
葬爱
光荣
画心
火花
稻香
爱得起
这种爱
大丈夫
花蝴蝶
二缺一
小酒窝
下雨天
右手边
安静了
棉花糖
明天过后
边做边爱
擦肩而过
没有如果
怀念过去
等一分钟
越来越爱
寂寞暴走
你的承诺
Nobody
我们都一样
永远在身边
天使的翅膀
原谅我一次
i miss you
原谅我一次
吻的太逼真
姑娘我爱你
做你的爱人
一定要爱你
飞向别人的床
爱上别人的人
感动天感动地
心在跳情在烧
不潮不用花钱
如何能把你忘记
即使知道要见面
爱上你是一个错
最后一次的温柔
爱上你是我的错
怎么会狠心伤害我
亲爱的那不是爱情
伤心时候可以听情歌
爱上你等于爱上了错
不是因为寂寞才想你