我一直在网上搜索,但找不到任何示例。
具有以下一个实例:
org.apache.commons.io.output.ByteArrayOutputStream
我如何获得以下一个实例:
org.primefaces.model.UploadedFile
谢谢
最佳答案
UploadedFile
是一个接口,您可以通过包装字节数组来简单地实现它:
import org.primefaces.model.UploadedFile;
import java.io.ByteArrayInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
public class ByteArrayUploadedFile implements UploadedFile {
private final byte [] data;
private final String filename;
private final String contentType;
public ByteArrayUploadedFile(byte [] data, String filename, String contentType) {
this.data = data;
this.filename = filename;
this.contentType = contentType;
}
@Override
public String getFileName() {
return filename;
}
@Override
public InputStream getInputstream() throws IOException {
return new ByteArrayInputStream(data);
}
@Override
public long getSize() {
return data.length;
}
@Override
public byte[] getContents() {
return data;
}
@Override
public String getContentType() {
return contentType;
}
@Override
public void write(String filePath) throws Exception {
try (FileOutputStream fos = new FileOutputStream(filePath)) {
fos.write(data);
}
}
}
该界面用于表示上传的文件,因此我们需要提供其他信息,例如文件名和内容类型。
然后,您可以执行以下操作以从
ByteArrayOutputStream
获取实例:ByteArrayOutputStream os = ...;
UploadedFile uploaded = new ByteArrayUploadedFile(os.toByteArray(), "SomeFile", "application/octet-stream");
关于java - 如何从org.apache.commons.io.output.ByteArrayOutputStream中创建org.primefaces.model.UploadedFile,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37955440/