转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> ORACLE >> 正文
用JAVA实现ORACLE数据库的文件上传、下载         ★★★★

用JAVA实现ORACLE数据库的文件上传、下载

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1115 更新时间:2009/4/22 22:10:36

哎!这个名字真难起,看起来怪怪的,呵呵。。。不说废话了,说正事吧!
     
      我在做项目!现在的变态太多了,用JAVA好象能显示出无比的能力,用微软好象就是白痴,实际上用什么东西都无所未,就是有人想不通,非逼着咱用JAVA,5555555555,我好可怜,问题一个个的出现,一个比一个难以解决,最后终于碰到了,最棘手的问题,就是文件的上传和下载了。

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

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

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

     文件下载使用的是:http://www.jspsmart.com的SmartUpload 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();
%>
     呵呵。。。好了终于完工了,希望大家能用的上,哎!年轻一点真好呀!


[系统软件]EXP-00008: ORACLE error 904 encountered的解决方…  [常用软件]PB7 连接 Oracle 的配置方法
[Web开发]oracle Export and Import 简介  [Web开发]ADO访问Oracle结果集的心得
[JAVA开发]JDBC+Hibernate将Blob数据写入Oracle  [JAVA开发]J2EE应用中与Oracle数据库的连接
[JAVA开发]Oracle Application Serve_  [其他]HP-UXrx2600B.11.22Uia64安装oracle9i9.2foria64手…
[其他]在RedhatEnterpriseserver3上安装oracle9iR2的注意…  [其他]PROC++批量导入导出ORACLE数据库表
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台