【发布时间】:2015-11-13 14:55:35
【问题描述】:
我在通过操作类插入上传的文件时遇到问题..
我在动作类上使用这个代码
UploadPortletRequest uploadRequest = PortalUtil.getUploadPortletRequest(actionRequest);
/* Upload NBI */
File nbi = null;
File nbiFile = getThisFile(uploadRequest, "nbiFile", nbi);
它正在调用这个方法来获取文件
public File getThisFile(UploadPortletRequest uploadRequest, String filename, File file){
InputStream[] inputStream;
try {
inputStream = uploadRequest.getFilesAsStream(filename);
for(InputStream fileObj:inputStream){
file = FileUtil.createTempFile(fileObj);
}
} catch (IOException e) {
e.printStackTrace();
}
return file;
}
然后这会将文件转换为 blob,我认为..
/* Convert files to blob */
Blob blobNbi = Blob.class.cast(nbiFile);
那我应该可以保存了
/* Attachment Object Properties */
long attachment_id = CounterLocalServiceUtil.increment();
attachments a = null;
a = attachmentsLocalServiceUtil.createattachments((int) attachment_id);
a.setNbi_clearance(blobNbi);
/* Save the data to table */
a = attachmentsLocalServiceUtil.addattachments(a);
但是当我运行它时,我得到 ClassCastException: cannot cast java.io.File to java.sql.Blob...
我的转换有什么问题,我试图找到从文件到 blob 的直接转换,但对我没有任何作用,也许我需要先转换为其他东西,然后再转换为 blob?
请帮忙,谢谢大家
【问题讨论】: