En essayant d'enrouler ma tête autour de Java Out/Inputstreams, fermeture et rinçage. J'ai une situation où je veux créer un fichier using Apache POI avec des données d'un serveur. Je voudrais que le fichier commence à télécharger dès que je récupère le premier enregistrement de la base de données (Afficher le fichier au bas du navigateur a commencé à télécharger).Java outputtream, téléchargement du fichier de trigger avant toutes les données récupérées depuis la base de données
public void createExcelFile(final HttpServletResponse response,
final Long vendorId) {
try {
// setup responses types...
final XSSFWorkbook xssfWorkbook = new XSSFWorkbook();
final XSSFSheet sheet = xssfWorkbook.createSheet("sheets1");
// create file with data
writeExcelOutputData(sheet, xssfWorkbook);
xssfWorkbook.write(response.getOutputStream());
xssfWorkbook.close();
}
catch (final Exception e) {
LOGGER.error("Boom");
}
Le code ci-dessus va effectuer un téléchargement de fichier sans problème, mais cela pourrait être un gros fichier. Je pars d'obtenir les données (environ 20/30 ans), puis après que le téléchargement commence < pas bon ...
Puis-je achive ce que je dois ou ce qui est la meilleure approche, grâce à l'avance
Vive:)
Vous essayez de diffuser un fichier Excel? Sauf s'il s'agit d'un flux, vous ne pouvez pas l'envoyer avant qu'il ne soit terminé. –
Et SI vous le faites dans un flux, vous ne serez pas en mesure de le télécharger. Le navigateur côté client devra l'interpréter avec un plugin. –
Je vais retourner les données par lots ... donc le déclenchement du fichier pour commencer le téléchargement avant que tous les lots sont relancés est impossible ??? – rogger2016