table中多文件上传到blob字段

<af:commandButton actionListener="#{bindings.CreateInsert.execute}" text="添加新数据"
                                  disabled="#{!bindings.CreateInsert.enabled}" id="cb1"/>

<table>
                                <tr>
                                    <td>
                                        <af:inputFile label="选 择" id="if1"
                                                      valueChangeListener="#{backingBeanScope.BlobBean.changeLister}"
                                                      binding="#{backingBeanScope.BlobBean.inputFileBinding}"/>
                                    </td>
                                    <td>
                                        <af:commandButton text="删 除" id="cb2"
                                                          actionListener="#{backingBeanScope.BlobBean.deleteDB}"/>
                                    </td>
                                </tr>
                            </table>

    public void changeLister(ValueChangeEvent event) {
        ApplicationModule am = ADFUtils.getDCBindingContainer().getDataControl().getApplicationModule();
        ViewObject vo = am.findViewObject("TesttableVO1");
        Row rw = vo.getCurrentRow();

        UploadedFile file = (UploadedFile)event.getNewValue();
        if (file != null && file.getLength() > 0) {
            try {
                if (rw != null) {
                    rw.setAttribute("File", writeInputStreamToBlobDomain(file.getInputStream()));
                    rw.setAttribute("Blobname", file.getFilename());
                }
            } catch (SQLException sqle) {
                // TODO: Add catch code
                sqle.printStackTrace();
            } catch (IOException ioe) {
                // TODO: Add catch code
                ioe.printStackTrace();
            }
        }

    }

 

 

    public BlobDomain writeInputStreamToBlobDomain(InputStream in) throws SQLException, IOException {
        BlobDomain blobDomain = new BlobDomain();
        OutputStream out = blobDomain.getBinaryOutputStream();
        writeInputStreamToOutputStream(in, out);
        in.close();
        blobDomain.closeOutputStream();
        out.close();
        return blobDomain;
    }

 

    public void writeInputStreamToOutputStream(InputStream in, OutputStream out) throws IOException {
        byte[] buffer = new byte[8192];
        int bytesRead = 0;
        while ((bytesRead = in.read(buffer, 0, 8192)) != -1) {
            out.write(buffer, 0, bytesRead);
        }
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值