Java Base64编码的字节数组到javax.activation.DataHandler
Java Base64 encoded byte array to javax.activation.DataHandler
我已经编写了一个将给定 PDF 文件编码为字节数组的方法:
public static byte[] encodeFileToBase64(String pathToPdfFile)
throws IOException {
File file = new File(pathToPdfFile);
InputStream input = null;
try {
input = new FileInputStream(file);
} catch (FileNotFoundException e) {
throw (e);
}
byte[] buffer = new byte[(int) file.length()];
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int bytesRead;
try {
while ((bytesRead = input.read(buffer)) != -1) {
baos.write(buffer, 0, bytesRead);
}
} catch (IOException e) {
throw (e);
}
input.close();
return baos.toByteArray();
}
现在我正在实现 SOAP 网络服务的接口。
用户手册要求使用 Base64 编码的 PDF 文件。
我已经使用 Apache Axis2 (wsdl2java
) 从给定的 wsdl
文件生成了 Java 代码。在此代码中,需要将给定的 PDF 文件设置为 javax.activation.DataHandler
:
/**
* Auto generated setter method
* @param param PdfDocument
*/
public void setPdfDocument(javax.activation.DataHandler param) {
this.localPdfDocument = param;
}
现在,我的问题是,如何将 Base64 编码的内容转换成 DataHandler
。
你能帮帮我吗?
谢谢!
试试这个:
DataSource fds = new FileDataSource("filePath");
request.setMessageFile(new DataHandler(fds));
javax.activation.* 包原生处理 base64 编码。
我已经编写了一个将给定 PDF 文件编码为字节数组的方法:
public static byte[] encodeFileToBase64(String pathToPdfFile)
throws IOException {
File file = new File(pathToPdfFile);
InputStream input = null;
try {
input = new FileInputStream(file);
} catch (FileNotFoundException e) {
throw (e);
}
byte[] buffer = new byte[(int) file.length()];
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int bytesRead;
try {
while ((bytesRead = input.read(buffer)) != -1) {
baos.write(buffer, 0, bytesRead);
}
} catch (IOException e) {
throw (e);
}
input.close();
return baos.toByteArray();
}
现在我正在实现 SOAP 网络服务的接口。
用户手册要求使用 Base64 编码的 PDF 文件。
我已经使用 Apache Axis2 (wsdl2java
) 从给定的 wsdl
文件生成了 Java 代码。在此代码中,需要将给定的 PDF 文件设置为 javax.activation.DataHandler
:
/**
* Auto generated setter method
* @param param PdfDocument
*/
public void setPdfDocument(javax.activation.DataHandler param) {
this.localPdfDocument = param;
}
现在,我的问题是,如何将 Base64 编码的内容转换成 DataHandler
。
你能帮帮我吗?
谢谢!
试试这个:
DataSource fds = new FileDataSource("filePath");
request.setMessageFile(new DataHandler(fds));
javax.activation.* 包原生处理 base64 编码。