0

我有一个模型 Entity Image
实体有一个类型的字段:Blob
要执行文件上传,请使用Apache Commons FileUpload Library.
要获取我的文件,我使用以下代码:

    Image image = new Image();
    ServletFileUpload upload = new ServletFileUpload();
    try {
        FileItemIterator itr = upload.getItemIterator(req);
        while(itr.hasNext()){
            FileItemStream item = itr.next();

            if(!item.isFormField())
            {
                image.setImageType(item.getContentType());
                InputStream stream = item.openStream();
                image.setImageData(???); //How to Set Blob Data from Input Stream
            }
        }
    } catch (FileUploadException e) {
        resp.sendError(500);
    }

谢谢。

4

1 回答 1

0

使用Streams.copy(input, output, doClose)Apache Commons FileUpload 附带的实用方法将其复制InputStream到一个字节数组中并从中创建一个Blob

InputStream stream = ...
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
Streams.copy(stream, bytes, true /* close stream after copy */);
Blob blob = new Blob(bytes.toByteArray());
image.setImageData(blob);
于 2013-11-18T22:13:10.923 回答