Java 将数据库中的文件保存到本地

  public void ReciveFile(String AttachID){
        if(gbl_Main.gbl_State.equals("offline")){
            JOptionPane.showMessageDialog(this, "离线状态下不能接收文件!","提示",JOptionPane.INFORMATION_MESSAGE);
        }else{
            if(gbl_Main.gbl_ErrorCounter==0){
                try {
                    File FileSave=null;
                    JFileChooser fcSave=new JFileChooser();
                    File DefaultFile;
                    if(gbl_LastSavePatch==""){
                        String s = System.getProperty("user.dir");
                        DefaultFile=new File(s+"/temp");
                        if((DefaultFile.exists()==false)&&(DefaultFile.isDirectory()==false)){
                            DefaultFile.mkdir(); //创建目录
                        }
                        fcSave.setSelectedFile(new File(s+"/temp/"+jLabel3.getText().replaceFirst(" 文件名:", "")));
                    }else{
                        DefaultFile=new File(gbl_LastSavePatch);
                        if((DefaultFile.exists()==false)&&(DefaultFile.isDirectory()==false)){
                            DefaultFile.mkdir(); //创建目录
                        }
                        fcSave.setSelectedFile(new File(gbl_LastSavePatch+"/"+jLabel3.getText().replaceFirst(" 文件名:", "")));
                    }
                    int Selection=fcSave.showDialog(jLabel1, "保存");
 
                    fcSave.setVisible(true);
                    if(Selection==0){
                        FileSave=fcSave.getSelectedFile();
                    }
                    String sql = "select FILE_NAME,ATTACHMENT from SESSION_ATTACHMENT where ATTACH_ID='"+ AttachID +"'";
                    SQL_OPERATION SQL = new SQL_OPERATION(gbl_Main);
                    SQL.pstmt(sql);
                    ResultSet rs = SQL.executeQuery();
    //                PreparedStatement pst = gbl_Main.cn.prepareStatement(sql);
    //                ResultSet rs = pst.executeQuery();
                    if (rs.next()) {
                        String FileName=rs.getString("FILE_NAME").trim();
                        InputStream fis=rs.getBinaryStream("ATTACHMENT");
                        File newFile=new File(FileSave.getPath());
                        gbl_LastSavePatch=FileSave.getParent();
                        if(!newFile.exists())
                                newFile.createNewFile();
                        FileOutputStream out=new FileOutputStream(newFile);
 
                        int count;
                        byte buffer []=new byte[1024];
                        while((count=fis.read(buffer))!=-1){
                        for(int i=0;i
  
  
                        out.write(buffer[i]);
                    }
                        }
                        fis.close();
                        out.close();
                    }
                    rs.close();
                    //pst.close();
                    SQL.close();
                        sql="UPDATE SESSION_ATTACHMENT_RECEIVER SET RECEIVER_TIME=getdate() where RECEIVER='"+ gbl_Main.gbl_UserID +"' and ATTACH_ID='"+ AttachID +"' AND SESSION_ID='"+ gbl_SessionID +"'";
                        //-pst=gbl_Main.cn.prepareStatement(sql);
                        //SQL.Connect();
                        SQL.pstmt(sql);
                        SQL.executeUpdate();
    //                    pst.executeUpdate();
                        gbl_AttachID="";
                        JOptionPane.showMessageDialog(this, "文件接收成功!/n 存放路径:"+FileSave.getPath());
                        jPanel8.setVisible(false);
                        gbl_SplitPaneWide=120;
                        Dimension frameSize = this.getSize();
                        int left = frameSize.width - this.jSplitPane1.getDividerSize() - gbl_SplitPaneWide;
                        this.jSplitPane1.setDividerLocation(left);
                        int height=frameSize.height;
                        this.jSplitPane3.setDividerLocation(height);
                        this.jPanel7.setSize(this.jPanel6.WIDTH, this.jPanel9.HEIGHT-this.jPanel6.HEIGHT);
        //System.out.println("last height="+this.jSplitPane3.);
                } catch (SQLException ex) {
                    Logger.getLogger(CHAT_FRAME.class.getName()).log(Level.SEVERE, null, ex);
                }
                 catch (IOException ex) {
                    Logger.getLogger(CHAT_FRAME.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值