[color=green][/color]
今天用java做了个简单的类似IE一样能够下载CVS格式的文件,刚开始由于前端代码是用ajax提交到后台,因此无论怎么做都无法实现,用firefox查看一切正常,但是返回的response总是空,进过调查发现好像不能用ajax提交,具体原因不是很明白,最后改成form提交一切正常,代码如下(play framework):
1,前段代码:
2,后台代码:
public static void download () {
try {
// 数据库中查询出来的数据
List list = Schedule.findAll();
//Generate binary data;
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
boolean first = true;
for (int i = 0; i < list.size(); i++) {
StringBuilder builder = new StringBuilder();
if (first) {
// 放入标题
String title = "Driver Number" + "," + "Vehicle Number" + "," + "Start Time" + "," + "End Time" + "," + "Line" + "," + "Duty ID";
builder.append(title);
builder.append("\r\n");
first = false;
}
Schedule sch = (Schedule)list.get(i);
String str = sch.driver.number + "," + sch.vehicle.number + "," + sch.startTime + "," +sch.endTime + "," + sch.serviceNumber + "," + sch.dutyId;
builder.append(str);
builder.append("\r\n");
String line = builder.toString();
outputStream.write(line.getBytes("UTF-8"));
outputStream.flush();
}
outputStream.close();
byte[] data = outputStream.toByteArray();
//Create input stream
ByteArrayInputStream inputStream = new ByteArrayInputStream(data);
//Render attachment
renderBinary(inputStream, "schedule.csv", data.length, "text/csv", true);
} catch (IOException e) {
}
}
大小: 37.1 KB
分享到:
2012-11-15 12:12
浏览 1454
评论