当前位置:  数据库>oracle

上传多个文件到Oracle数据库

    来源: 互联网  发布时间:2017-03-23

    本文导语: /* * Created on 2005-9-27 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */package com.system.web; import java.sql.*;import java.io.*;import java.util.*;import javax.servlet.*;import javax.servlet.http.*;import com.jspsm...

/*
 * Created on 2005-9-27
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package com.system.web;





import java.sql.*;
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import com.jspsmart.upload.*;
import com.mdcl.sc.common.dao.DAOUtils;//dao
import com.sun.image.codec.jpeg.*;
import java.awt.image.*;
import java.awt.*;
import java.net.*;
import java.applet.*;
/**
 * @author hanxr
 *
 * TODO To change the template for this generated type comment go to Window -
 * Preferences - Java - Code Style - Code Templates
 */
public class DoUpload extends HttpServlet
{
  private ServletConfig config;



















  final public void init(ServletConfig config) throws ServletException
  {
    this.config = config;
  }


  final public ServletConfig getServletConfig()
  {
    return config;
  }


  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
  {
    doPost(request,response);
  }


  public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
  {
        response.setContentType("text/html;charset=gb2312");
        PrintWriter out = response.getWriter();
        String titleid=new String();//标题id
        String fileName=new String();//上传的文件名称
        try
        {
         System.out.println("开始上传附件");
         SmartUpload mySmartUpload = new SmartUpload();
         Connection conn = DAOUtils.getConnection();//链接Oracle数据库
         conn.setAutoCommit(false);//设置不自动提交。
         Statement stmt=conn.createStatement(ResultSet.TYPE_FORWARD_ONLY ,ResultSet.CONCUR_UPDATABLE);
         ResultSet rs=null;
         mySmartUpload.initialize(config, request, response);
         mySmartUpload.setMaxFileSize(1024 * 1024 * 10);//上传文件最大尺寸
         mySmartUpload.upload();//上传
         Enumeration enumer=mySmartUpload.getRequest().getParameterNames();
         String strsql=new String();//sql语句
         for (int i=0;imySmartUpload.getSize())
                {
                    System.out.println("上传文件过大!");
                    int err=1/0;
                  }
                  System.out.println("文件大小:"+(int)(fileSize/1024)+"KB");//后台显示文件大小
                  if(fileSize!=0)
                  {
                      String contenttype = myFile.getContentType();//获得文件类型
                      System.out.println("文件类型:"+contenttype);//后台显示文件类型
                      String blobzd=new String();//blob字段名
                        if(!contenttype.trim().equals("image/pjpeg") && !contenttype.trim().equals("image/gif"))
                        {
                          System.out.println("上传的文件不是规定格式的图片!");
                          int err=1/0;
                        }
                        blobzd="img";//图片表图片字段名称
                        strsql="insert into tblpicture(id,titleid,num,picture,img,thumbnail) values(pictureid.nextval,"+titleid+","+fileSize+",'"+contenttype.trim()+"',empty_blob(),empty_blob())";//插入一条空图片数据进图片表
                        stmt.execute(strsql);
                        //------------生成缩略图------------------//
                        BufferedImage image;
                        Image img=null;
                        Toolkit tk=Toolkit.getDefaultToolkit();
                        Applet app=new Applet();
                        MediaTracker mt = new MediaTracker(app);
                        img=tk.getImage(request.getRealPath("")+"\uploadfile\"+fileName);//获取原始图
                        mt.addImage(img, 0);
                        mt.waitForID(0);
                        double rate1=((double)img.getWidth(null))/120.0+0.1;
                        double rate2=((double)img.getHeight(null))/120.0+0.1;
                        double rate=rate1>rate2?rate1:rate2;
                        int new_w=(int)(((double)img.getWidth(null))/rate);
                        int new_h=(int)(((double)img.getHeight(null))/rate);
                        BufferedImage buffImg = new BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);
                        Graphics g = buffImg.createGraphics();
                        g.setColor(Color.white);
                        g.fillRect(0,0,new_w,new_h);
                        g.drawImage(img,0,0,new_w,new_h,null);//绘制缩略图
                        g.dispose();
                        java.io.OutputStream tempout=null;
                        java.io.File tempfile=new java.io.File(request.getRealPath("")+"\uploadfile\"+fileName+"_small.jpg");
                        tempout= new FileOutputStream(tempfile);
                        JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(tempout);
                        encoder.encode(buffImg);
                        if(tempout!=null)tempout.close();
                        //------------缩略图生成完毕----------------//
                        //------------缩略图入库-------------------//
                        java.io.InputStream tempinstream=new java.io.FileInputStream(tempfile);//将缩略图文件读到流中
                        strsql="select thumbnail from tblpicture where titleid="+titleid+" and dbms_lob.getlength(thumbnail)=0 for update ";//选择图片表的缩略图字段更新
                        rs=stmt.executeQuery(strsql);
                        if (rs !=null && rs.next())//写缩略图数据进blob类型字段
                        {
                          System.out.println("缩略图入库!");
                          oracle.sql.BLOB tempblob=((oracle.jdbc.OracleResultSet)rs).getBLOB("thumbnail");
                          tempout = tempblob.getBinaryOutputStream();
                          byte[] tempbytes = new byte[(int) tempfile.length()];//创建缓冲区
                        tempinstream.read(tempbytes);
                         tempout.write(tempbytes);
                         tempout.flush();
                        stmt.execute("commit");
                          if(tempout!=null)tempout.close();
                        }
                        if(tempinstream!=null)tempinstream.close();
                        if(tempfile!=null){if(tempfile.delete())System.out.println("缩略图入库完毕!临时文件已删除!");}//删除缩略图临时文件
                        //---------------缩略图入库完毕-------------//
                        strsql="select img from tblpicture where titleid="+titleid+" and dbms_lob.getlength(img)=0 for update ";//选择图片表的图片字段更新
                        rs=stmt.executeQuery(strsql);
                      if (rs !=null && rs.next())//写数据进blob类型字段
                      {
                        oracle.sql.BLOB blob=((oracle.jdbc.OracleResultSet)rs).getBLOB(blobzd);
                        java.io.OutputStream outStream = blob.getBinaryOutputStream();
                        byte[] bytes = new byte[fileSize];//创建缓冲区
                      inStream.read(bytes);
                       outStream.write(bytes);
                       outStream.flush();
                      stmt.execute("commit");
                        if(outStream!=null)outStream.close();
                      }
                  }
                  if(inStream!=null)inStream.close();
                  if(sfile!=null){if(sfile.delete())System.out.println("临时文件已删除");}//删除临时文件
              }
           }
           if(rs!=null)rs.close();
           if(stmt!=null)stmt.close();
           if(conn!=null)conn.close();
           System.out.println("文件上传完毕");
          }
          catch(Exception ex1)
          {
            System.out.println(ex1.toString());
          }


























































































































    }
}


    
 
 

您可能感兴趣的文章:

  • Codeigniter实现多文件上传并创建多个缩略图
  • struts2中实现多个文件同时上传代码
  • 诸位,谁能给出将文件上传到数据库和文件夹的优劣?
  • 如何将客户端上传的ACCESS数据库用ODBC连接,即动态ODBC,急盼!
  • 怎样下载用jspSmartUpload上传到数据库中的文件??
  • 如何将一幅图片上传并保存在数据库中?
  • 如何实现图片上传、缩放并存放到数据库中
  • jsp文件上传smartupload到oracle数据库中没有longblob的数据类型如何处理的?
  • 请教:怎么用JSP把图片上传到服务器SQL Server数据库?
  • 请问那里有SYBASE的jbdb 2.0下载;jspsmartupload可以直接将文件上传到数据库,请问如何使用
  • jsp中如何上传图片进数据库,并且读出来(快来啊,大兄们,笨苯,你在哪里呀,你在哪里:))
  • 请问那位高手能帮我解决在jsp中将本地文件上传到数据库服务器的一个字段中的问题
  • 老板催得急啊,各位好心人,帮帮忙吧如何在jsp中把word文档上传到oracle数据库
  • 如何将jspsmartupload上传的文件使用SQL语句存入数据库
  • 各位大哥哥好!MM我刚做好了一个小小的个人主页,请问哪儿有免费的jsp空间,还有上传后,怎样与现有的数据库建立连接?
  • 上传文件到数据库中,请问哪里出错了?
  • asp.ent 图片上传数据库的代码(c#)
  • linux数据库备份并通过ftp上传脚本分享
  • php上传图片存入数据库实例代码
  • asp.net 将图片上传到mysql数据库的方法
  • asp.net上传图片加防伪图片水印并写入数据库的代码一例
  • 上传图片后使用数据库保存图片的示例分享
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • jquery上传插件fineuploader上传文件使用方法(jquery图片上传插件)
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • ftp 上传中的文件和上传完的文件 有什么区别
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • 用SmartUpload类上传文件有大小限制吗??或者ENCTYPE='multipart/form-data'的form对于上传文件大小有限制??为什么大于1M的文件一上传就显示找不到页面啊!!
  • 文件上传组件SWFUpload 介绍
  • FTP上传的时候速度慢慢跌到0,然后不能上传
  • http协议介绍,文件上传分析及程序举例
  • 请问JSP里面怎样实现上传WORD和EXCEL文件,上传之后如何在IE里面调用显示!!!
  • ftp协议介绍及ftp常用的上传下载等操作命令使用方法
  • 100分求一个上传图片的bean,要求上传后能改变文件名称
  • linux ftp服务器端如何修改文件上传数目与上传字节数的限制?
  • 为什么我上传文件的时候,如果遇到文件名是中文的,虽然可以上传,但不可以下载,怎么解决?
  • Jquery uploadify图片上传插件无法上传的解决方法
  • 我要做一个论坛,还要能做软件的上传和下载,文件的上传和下载,要求yizi给与帮助!!!
  • 用SmartUpload上传文件时,最大能支持多大的文件上传?
  • 高分相送,用jspsmartupload上传文件,在webshpere3。5环境里面很好用,但是在4。0里面就只能上传不超过7k的东东了,怎么解决这个问题,
  • 操作系统 iis7站长之家
  • 在linux操作系统上向ftp服务器(linux系统)上上传文件,我要纪录操作日志,得到上传到ftp服务器上的文件的路径问题?
  • C#判断上传文件是否是图片以防止木马上传的方法


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3