Ich möchte ein .csv File erzeugen mit Daten aus der Datenbank.
Das runterladen und erstellen funktioniert prinzipiell.
Nur es steht einfach irgendwas drin in der Datei dann, schaut so aus wie Binärdaten.... also nicht lesbar.
Lokal bei mir funktioniert.
Online am Server nicht...
Bis kurz bevor ich den ByteArrayInputStream erzeuge, schaut der csvString wenn ich ihn mir ausgeben lasse richtig aus.
D.h. der Fehler muss auftauchen, in der while Schleife wenn ich mir die einzelnen Werte aus dem ByteArrayInputStream ausgeben lasse.
Ich versteh nur nicht wo da der Fehler liegt, weil es ja Lokal geht...
Das runterladen und erstellen funktioniert prinzipiell.
Nur es steht einfach irgendwas drin in der Datei dann, schaut so aus wie Binärdaten.... also nicht lesbar.
Lokal bei mir funktioniert.
Online am Server nicht...
Bis kurz bevor ich den ByteArrayInputStream erzeuge, schaut der csvString wenn ich ihn mir ausgeben lasse richtig aus.
D.h. der Fehler muss auftauchen, in der while Schleife wenn ich mir die einzelnen Werte aus dem ByteArrayInputStream ausgeben lasse.
Ich versteh nur nicht wo da der Fehler liegt, weil es ja Lokal geht...
Code:
String[] csvFields = { "TERMIN.TERMIN_ID", "TERMIN_DATUM",
"TERMIN_VON", "TERMIN_BIS", "UAINTERN_KBZ",
"TERMIN_STATUS"" };
StringBuffer csvString = new StringBuffer(64000);
// FIELDNAMES
csvString.append(concatArray(csvFields, ";", 'u', true));
csvString.append("\r\n");
try {
rs = terminFilter(concatArray(csvFields, ", ", 'u'), filter, conn);
while (rs.next()) {
for (int i = 1, n = csvFields.length; i <= n; i++) {
switch (i) {
case 3:
case 4:
csvString.append("\""+ eliminateNull(rs.getString(i).substring(0, 5)));
break;
case 6:
csvString.append("\""+ getTerminStatus(rs.getString(i)));
break;
case 20:
csvString.append("\""+ getTerminTyp(rs.getString(i)));
break;
default:
csvString.append("\""+ eliminateNull(rs.getString(i)));
break;
}
if (i < n)
csvString.append("\";");
else
csvString.append("\"\r\n");
}
}
rs.close();
} catch (SQLException e) {
log.handleException(e);
}
ByteArrayInputStream bais = new ByteArrayInputStream(csvString.toString().getBytes("ISO-8859-15"));
try {
response.reset();
response.setContentType("text/csv");
Date today = new Date();
DateFormat formater = new SimpleDateFormat("yyyyMMdd");
String filename = p_id + "_" + formater.format(today) + ".csv";
String disHeader = "attachment; filename=\"" + filename + "\"";
response.setHeader("Content-Disposition", disHeader);
int i;
while ((i = bais.read()) != -1) {
out.write(i);
}
bais.close();
out.close();
} catch (IOException e) {
System.out.println("EXCEPTION "+e.getMessage());
bais.close();
out.close();
bais = null;
}