首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DataHandler名称未发送到服务器端

DataHandler名称未发送到服务器端
EN

Stack Overflow用户
提问于 2016-09-15 23:54:38
回答 1查看 450关注 0票数 0

我正在使用Apache CXF实现发送一个附件。即使我设置了dataHandler的名称,我也不知道为什么在服务器端没有显示出来。

代码语言:javascript
运行
复制
Map<String, DataHandler> attachmentsMap = (Map<String, DataHandler>) context.get(MessageContext.OUTBOUND_MESSAGE_ATTACHMENTS);
ByteArrayDataSource bads = new ByteArrayDataSource(file, PDF_MIME_TYPE);
bads.setName(fileId);

DataHandler dh = new DataHandler(bads);

AttachmentPart attachmentPart = message.createAttachmentPart();

attachmentPart.setContent(new ByteArrayInputStream(file), PDF_MIME_TYPE);
attachmentPart.setContentId(fileId);
attachmentPart.setMimeHeader("fileName", "test");
message.addAttachmentPart(attachmentPart);
message.saveChanges();

attachmentsMap.put(fileId, dh);

正如您所看到的,当我执行"bads.setName(fileId);“时,也设置了dataHandler的名称。在本地,如果我使用dh.getName,我已经设置了名称。发送后它不再存在

EN

回答 1

Stack Overflow用户

发布于 2016-09-16 15:58:27

遗憾的是,我将回答myself..again :)

必须设置contentDisposition并将其放在附件的mimeHeader上,如下所示:

代码语言:javascript
运行
复制
 String contentDisposition = "Content-Disposition: attachment; name=\"" + fileName + "\"";                                                
 attachmentPart.addMimeHeader("Content-Disposition", contentDisposition);

希望这能对某些人有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39515471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档