<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);
}
}