28. august 2006 - 16:24Der er
11 kommentarer og 1 løsning
Fil download og postback i samme klik
Jeg har brug for at have en linkbutton der giver et postback hvor jeg kan gemme nogle værdier i en database, samtidig med at det samme klik også giver brugeren mulighed for at downloade en fil. Kan jeg på nogen måde vedhæfte filen på Response objektet inden min Page afslutter?
Et alternativ kunne måske være at bruge JavaScript og så kalde en funktion der får download dialogen til at poppe op (hvis det er muligt) og derefter kan jeg lave en submit, så jeg kan få opdateret min database.
Er der nogen der har prøvet noget lignende og kan fortælle mig hvad der kan lade sig gøre?
Det virker næsten perfekt. Det eneste problem er at det ikke ser ud til at den kan genkende min fil (.csv), selv om jeg prøver med "text/csv" eller "application/csv" eller for den sags skyld "application/Excel"...
Jo, den åbner en download box, men den kan ikke genkende fil typen og den smider .csv efter filen....
hvis jeg bruger "application/x-msexcel" siger den at det er en excel fil i stedet for "unknown type", så det er jo fremskridt. Men det er bare lidt skidt at filen mister sit .csv, så kan det jo være brugeren vælger at gemme den med en anden endelse og får problemer... Selvom jeg skriver at han kan downloade en komma separeret fil :)
Jeg har først lige prøvet at kigge på filen nu - når jeg har downloaded den, så indeholder den også html'en fra hjemmesiden som bliver smidt ind i slutningen af filen - det går jeg ikke ud fra at du oplever?
Skal lige forstå det korrekt. Har du ikke en fil på din server, som er den du vil give brugeren mulighed for at downloade? I så fald´må der være noget galt med selve filen
Den løsning jeg har henter jeg data ud fra databasen og gemmer i en fil - herefter smider jeg filen ud til brugeren.
Jo, det er rigtigt - jeg har lige lavet en fil, som brugeren skal have mulighed for at downloade.
Filen er ok - og jeg kan sagtens downloade den hvis jeg bare bruger et <a href="...
men når jeg prøver at gøre som du foreslår bliver filen xKb større og der kommer en masse html i røven af den. Det giver ikke rigtig nogen mening synes jeg, idet jeg jo laver den response.end som du skriver.
Det lyder mest som om, at noget af HTML'en fra din side bliver skrevet ned i filen - og dermed en fejl i selve skrivningen af filen. Det andet med at hente filen burde virke.
Hvordan skriver du til filen?
(Jeg har selv haft lidt probs med at der kom ekstra indhold i min fil)
Jeg skriver filen med en streamwriter, men den del virker fint og foregår i en backend komponent, der ikke har nogen direkte knytning til html siden (den skriver bare i en DB når den har lavet filen). Så jeg er 100% sikker på at filen er ok.
Det er i disse linier der sker et eller andet underligt:
Men jeg kan ikke lige se hvornår det html skulle blive skrevet i mit response - jeg laver jo en clear() inden jeg går i gang og en end() når jeg er færdig
Ok, nu skylder jeg vidst en undskyldning for at spilde din tid :(
Jeg har haft trace på hele tiden mens jeg sidder og udvikler, så det er selvfølgelig al trace html'en der kommer efter filen...
Men tak for hjælpen - der virker fint når jeg slår trace fra :/
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.