我需要按用户发送包含所选附件的电子邮件,
我使用UploadItem
来选择文件。
接下来我不需要存储所选文件,我只需将其附加到电子邮件中即可。
现在我可以发送带有附件的电子邮件,但事实是该附件变为*.tmp
文件格式(如果我选择任何类型的*.txt
或*.png
等)。
我附上了我的代码部分
我的DynamicForm()
private static DynamicForm ticketForm = new DynamicForm();
private static UploadItem uploadAttachment = new UploadItem("attachment");
private static TextItem name = new TextItem("senderName", "Name");
private static IButton submitButton = new IButton("Submit");
ticketForm.setEncoding(Encoding.MULTIPART);
ticketForm.setMethod(FormMethod.POST);
ticketForm.setDataSource(DS.getInstance());
ticketForm.setItems(name,uploadAttachment);
submitButton.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event){
Explorer.getInstance().startAjaxOperation();
ticketForm.setAction("submit.action"); //struts
ticketForm.submitForm();
Explorer.getInstance().finishAjaxOperation();
}
});
我的DS课程
public class DS extends BaseDataSource {
private static DS instance = null;
public static DS getInstance() {
if (instance == null) {
instance = new DS();
}
return instance;
}
public DS() {
setRecordXPath("/");
setDataFormat(DSDataFormat.JSON);
setDataURL("submit.action");
DataSourceTextField nameField = new DataSourceTextField("senderName", "senderName");
DataSourceField attachmentField = new DataSourceField("attachment", FieldType.IMAGE, "attachment");
setFields(nameField, attachmentField);
}
}
来自我的支持类,我称之为服务
class Service(){
sendEmail(model.getName,model.getAttachment){
/*process*/
}
}
我的模型类
class Model(){
private String senderName;
private File attachment;
/* getter setters for this*/
}
发送电子邮件附件,如下图
我找不到任何错误。
我需要发送任何类型的文件*.txt
或*.png
等,但其格式正确而不是*.tmp
文件
否则,如果您向我提供任何代码段以创建所选文件,服务层中的File
对象也会受到赞赏。