请帮助我。
我的问题是,我使用printwriter对象生成(创建)csv文件,将一些数据写入csv文件,并且一次将此csv文件附加到电子邮件中。 当我的代码执行时,csv文件生成成功,我收到附件csv文件的电子邮件,但csv内容不是可读格式。
所以请帮帮我怎么办?
public void SendMail(HttpServletRequest req, HttpServletResponse resp) throws MessagingException, IOException {
String filename = "Testcsv.csv";
resp.setHeader("Content-Type", "text/csv");
resp.setHeader("Content-Disposition", "attachment; filename=\"" + filename + "\"");
PrintWriter fw = ((ServletResponse) resp).getWriter();
fw.append("#");
fw.append(',');
fw.append("Product code");
fw.append(',');
fw.append("Product");
fw.append('\n');
fw.append("1");
fw.append(',');
fw.append("12345");
fw.append(',');
fw.append("testing");
fw.append('\n');
fw.flush();
fw.close();
String csvFile = fw.toString();
String host = "smtp.gmail.com";
//String host = "localhost";
String from = "emailaddress";
String toAddress = "emailaddress";
// Get system properties
Properties props = System.getProperties();
props.put("mail.smtp.host", host);
Session session = Session.getInstance(props, null);
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.setRecipients(Message.RecipientType.TO, toAddress);
message.setSubject("JavaMail Attachment");
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText("Here's the file");
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
messageBodyPart = new MimeBodyPart();
messageBodyPart.setDataHandler(new DataHandler(new ByteArrayDataSource(csvFile.getBytes(),"text/csv")));
messageBodyPart.setFileName("testcsv.csv");
multipart.addBodyPart(messageBodyPart);
message.setContent(multipart);
try {
Transport.send(message);
System.out.println("Mail Sent Successfully");
} catch (SendFailedException sfe) {
System.out.println(sfe);
}
}
答案 0 :(得分:1)
不使用PrintWriter,而是使用StringBuilder或只使用字符串。我试过这个并且有效。
希望它会有用。
var employeeViewModel = function(data) {
var self = this;
self.id = ko.observable(data.id);
self.name = ko.observable(data.name);
self.activebool = ko.observable(data.activebool);
self.openEditbox = function() {
console.log('2');
}
}
var employeesViewModel = function (data) {
var self = this;
self.employees = ko.observableArray().paged(20);
var employees = ko.utils.arrayMap(data, function (employee) {
return new employeeViewModel(employee);
})
self.employees(employees);
self.openEditbox = function() {
console.log('1');
}
}
var data = @Html.HtmlConvertToJson(Model);
ko.applyBindings(new employeesViewModel(data));