zipowanie xls

Odpowiedz Nowy wątek
2007-10-19 15:45
Magda1
0

WITAM!!! MAM NASTEPUJACY PROBLEM.

CHCE ZZIPOWAC PLIK XLS W TEN SPOSOB ZEBY NIE GENEROWAC NOWEGO PLIKU NA DYSK,
TYLKO BEZPOSREDNIO ZZIPOWANY STRUMIEN WSTAWIC DO BAZY DANYCH JAKO BLOB(SETBINARYSTREAM).
CZY TO WOGOLE JEST MOZLIWE?

Z GORY DZIEKI!!

Pozostało 580 znaków

2007-10-19 22:26
0

po pierwsze prosze - nie uzywaj capsa
tak, jest to mozliwe.
poniewaz strumienie to dekoratory - mozesz podlaczyc FileInputStream (lub InputStream w przypadku innego zrodla) do PipedInput/OutputSream a nastepnie opakowac go ZipOutputStream i wrzucic do ByteArrayOutputStream a nastepnie do bazy zwyklym insertem

pozdrawiam

Pozostało 580 znaków

2007-10-22 10:32
Magda1
0

//Robilam to wczesniej tak
FileInputStream in = new FileInputStream(plikTmp);
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(nazwa+ ".zip"));
out.putNextEntry(new ZipEntry(plikTmp.getName()));

    // transfer z pliku do zipa
    byte[] buf = new byte[1024];
    int len;
    while ((len = in.read(buf)) > 0) {
        out.write(buf, 0, len);
    }

    // zamknij zipa
    out.closeEntry();
    out.close();

    // zamknij plik wejsciowy
    in.close();

File file = new File(nazwa + ".zip");
    FileInputStream zip = new FileInputStream(file);

    ps.setBinaryStream(6, zip ,(int)file.length());
    // 
    // a teraz tak , tylko nie wiem skąd wziać rozmiar tego os1

FileInputStream in = new FileInputStream(plikTmp);
    ByteArrayOutputStream os = new ByteArrayOutputStream();

    ZipOutputStream out = new ZipOutputStream(os);
    out.putNextEntry(new ZipEntry(plikTmp.getName()));

    // transfer z pliku do zipa
    byte[] buf = new byte[1024];
    int len;
    while ((len = in.read(buf)) > 0) {
        out.write(buf, 0, len);
    }

ByteArrayInputStream os1 = new ByteArrayInputStream(os.toByteArray());
ps.setBinaryStream(6, os1, ?);

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0