1
A
答えて
0
私が見つけたこの例では、私の場合のために働い:
@Controller
@RequestMapping(value = "/")
public class HomeController {
@RequestMapping(value = "/download", method = RequestMethod.GET)
public StreamingResponseBody getSteamingFile(HttpServletResponse response) throws IOException {
response.setContentType("text/html;charset=UTF-8");
response.setHeader("Content-Disposition", "attachment; filename=\"webpage.html\"");
InputStream inputStream = new FileInputStream(new File("C:\\MyWebPage\\webpage.html"));
return outputStream -> {
int nRead;
byte[] data = new byte[1024];
while ((nRead = inputStream.read(data, 0, data.length)) != -1) {
outputStream.write(data, 0, nRead);
}
inputStream.close();
};
}
}
0
私はSpringBootのthis実行中のプロジェクトを持っています。以下はxlsx
ファイルを出力するコードの一部です。要するに
WebController.java
@RequestMapping(value = {"/excel"}, method = RequestMethod.GET)
public void excel(HttpServletResponse response, @RequestParam("email") String email) {
try {
Query query = new Query();
query.addCriteria(Criteria.where("email").is(email));
if(email.equals(""))
query=new Query();
List<MQTT_Server_Detail> list = mongoTemplate.find(query, MQTT_Server_Detail.class, "owner");
response.addHeader("Content-disposition", "attachment; filename=Door.xlsx");
response.setContentType("application/vnd.ms-excel");
Workbook workbook = new XSSFWorkbook();
workbook.createSheet("owner");
workbook.setSheetName(0, "Owner");
Sheet sheet = workbook.getSheetAt(0);
sheet.createRow(0);
sheet.getRow(0).createCell(0).setCellValue("Owner Email");
sheet.getRow(0).createCell(1).setCellValue("Topic");
sheet.getRow(0).createCell(2).setCellValue("Device Name");
sheet.getRow(0).createCell(3).setCellValue("Device ID");
Row row;
int num = 1;
for (MQTT_Server_Detail a : list) {
Devices devices = getDevice(a.getEmail());
for (int i = 0; i < devices.getDevicesID().size(); i++) {
row = sheet.createRow(num++);
row.createCell(0).setCellValue(a.getEmail());
row.createCell(1).setCellValue(a.getTopic());
row.createCell(2).setCellValue((String) devices.getDevicesName().get(i));
row.createCell(3).setCellValue((String) devices.getDevicesID().get(i));
}
}
sheet = workbook.createSheet("Users");
row = sheet.createRow(0);
row.createCell(0).setCellValue("Name");
row.createCell(1).setCellValue("Device");
row.createCell(2).setCellValue("CardID");
row.createCell(3).setCellValue("Email");
row.createCell(4).setCellValue("Mobile");
row.createCell(5).setCellValue("Blocked");
row.createCell(6).setCellValue("Last in Date");
row.createCell(7).setCellValue("Last in Time");
row.createCell(8).setCellValue("Last out Date");
row.createCell(9).setCellValue("Last out Time");
row.createCell(10).setCellValue("Owner");
Criteria criteria[] = new Criteria[list.size()];
for (int i = 0; i < list.size(); i++) {
criteria[i] = Criteria.where("owner").is(list.get(i).getEmail());
}
List<Users_POJO> users_pojoList;
if (list.size() == 0)
users_pojoList = new ArrayList<>();
else
users_pojoList = mongoTemplate.find(new Query().addCriteria(new Criteria().orOperator(criteria)),
Users_POJO.class, "users");
for (int i = 0; i < users_pojoList.size(); i++) {
row = sheet.createRow(i + 1);
row.createCell(0).setCellValue(users_pojoList.get(i).getName());
row.createCell(1).setCellValue(users_pojoList.get(i).getDevice());
row.createCell(2).setCellValue(users_pojoList.get(i).getCard_id());
row.createCell(3).setCellValue(users_pojoList.get(i).getEmail());
row.createCell(4).setCellValue(users_pojoList.get(i).getMobile());
row.createCell(5).setCellValue(users_pojoList.get(i).getBlocked());
row.createCell(6).setCellValue(users_pojoList.get(i).getLast_in_date());
row.createCell(7).setCellValue(users_pojoList.get(i).getLast_in_time());
row.createCell(8).setCellValue(users_pojoList.get(i).getLast_out_date());
row.createCell(9).setCellValue(users_pojoList.get(i).getLast_out_time());
row.createCell(10).setCellValue(users_pojoList.get(i).getOwner());
}
sheet = workbook.createSheet("Logs");
row = sheet.createRow(0);
row.createCell(0).setCellValue("CardID");
row.createCell(1).setCellValue("Device");
row.createCell(2).setCellValue("Date");
row.createCell(3).setCellValue("Time");
row.createCell(4).setCellValue("Count");
criteria = new Criteria[users_pojoList.size()];
for (int i = 0; i < users_pojoList.size(); i++) {
criteria[i] = Criteria.where("card_id").is(users_pojoList.get(i).getCard_id());
}
query = new Query();
query.addCriteria(new Criteria().orOperator(criteria));
List<Log_POJO> log_pojoList;
if (users_pojoList.size() == 0)
log_pojoList = new ArrayList<>();
else
log_pojoList = mongoTemplate.find(query, Log_POJO.class, "logs");
for (int i = 0; i < log_pojoList.size(); i++) {
row = sheet.createRow(i + 1);
row.createCell(0).setCellValue(log_pojoList.get(i).getCard_id());
row.createCell(1).setCellValue(log_pojoList.get(i).getDevice());
String date = log_pojoList.get(i).getDay() + "-" + log_pojoList.get(i).getMonth() + "-" + log_pojoList.get(i).getYear();
row.createCell(2).setCellValue(date);
String time = log_pojoList.get(i).getHour() + "-" + log_pojoList.get(i).getMin() + "-" + log_pojoList.get(i).getSec();
row.createCell(3).setCellValue(time);
row.createCell(4).setCellValue(log_pojoList.get(i).getSerial_no());
}
workbook.write(response.getOutputStream());
response.flushBuffer();
} catch (Exception e) {
e.printStackTrace();
}
}
、あなたはこれをしなければならない。
response.addHeader("Content-disposition", "attachment; filename=Door.xlsx");
response.setContentType("application/vnd.ms-excel");
//get the outputstream of response and write data to it
+0
あなたの意図は良いですが、提供されたコードは本当に長いです。それは疑問を超えています。 – davidxxx
関連する問題
- 1. サーバーからファイルをダウンロードする方法
- 2. Spring RESTファイルのサーバーからのダウンロード
- 3. Swiftのサーバーからzipファイルをダウンロードする方法は?
- 4. PHPを使ってサーバーからファイルをダウンロードする方法
- 5. smartgwtを使ってサーバーからファイルをダウンロードする方法は?
- 6. エクスプレスでサーバーからファイルをダウンロードする方法
- 7. ダウンロードしたファイルをサーバーからJavaに保存する方法
- 8. サーバーからファイルをダウンロードしてZIPする方法
- 9. サーバーからローカルホストにファイルをダウンロードする方法
- 10. サーバーからPDFファイルをダウンロードする方法。
- 11. 私はサーバーに、別のftpサーバーからファイルをダウンロードする方法
- 12. Springブートの例を理解する
- 13. データベーステーブルからファイルをダウンロードする(Mysql、spring)
- 14. ftpサーバーからファイルをダウンロード
- 15. JBOSSサーバーからwarファイルにダウンロードする方法
- 16. Springブート - 設定ファイルからModel属性をテストする方法は?
- 17. Springブート/ Spring MVC - 別のリクエストからの応答を転送する方法
- 18. Springブートoauth2クライアントアプリケーションからresponse_typeを送信する方法
- 19. Python:HTTPサーバーからファイルをダウンロードする
- 20. サーバーから.datファイルをダウンロードする
- 21. HapiJsサーバーからファイルをダウンロードする
- 22. Mbedtls - サーバーからファイルをダウンロードする
- 23. SpringブートのwarファイルをAmazon Lightsailにデプロイする方法
- 24. Spring統合ftpのサーバーから「xyz」で始まるファイル名をダウンロードする方法は?
- 25. AndroidクライアントとSpringブートRESTfulサーバーの作成方法は?
- 26. Springブートでファイルアップロードディレクトリをカスタマイズする方法
- 27. SpringブートでNamedParameterJdbcTemplateをオートワイヤリングする方法
- 28. POSTを介してInputStreamからアップロードファイル中のSpringブート、RestTemplate例外
- 29. Spring MVCアプリケーションのブラウザからファイルをダウンロード
- 30. 例によるGroovyベースのSpringブートDI
GO TO春のブートのウェブサイトとあなたの質問に関連するすべての例を参照してください。 – kometen
これはSpring Bootに固有のものではありません。春は十分です:https://stackoverflow.com/questions/5673260/downloading-a-file-from-spring-controllers – davidxxx