|
Web razvoj Sve u vezi sa razvojem Internet sajtova: programi, dizajn, usluge hostinga, administracija... |
|
Alatke vezane za temu | Vrste prikaza |
6.3.2014, 14:02 | #1 |
Član
Član od: 9.11.2005.
Lokacija: Beograd
Poruke: 150
Zahvalnice: 14
Zahvaljeno 0 puta na 0 poruka
|
Download privremeno kreiranog fajla?
Pozdrav svima
Pošto mi je potrebna pomoć iz PHPa i jQuerya postavljam temu ovde. Korisnik može da odluči da skine tabelu koju gleda u sledećim fajlovima: .pdf, .xlsx i .xls. Kada korisnik klikne na željeni tip fajla, pomoću AJAXa se pokreće PHP skripta koja kreira fajl sa izabranom ekstenzijom. Fajl se kreira pomoću PHPExcel. Čim se kreira fajl pokreće se download fajla. Kako ovo da izvedem? Treba napomenuti da fajl ne sme da se sačuva na serveru, već treba da bude temp fajl, koji će biti sačuvan samo na korisnikovom računaru. Hvala |
6.3.2014, 16:33 | #2 |
Deo inventara foruma
Član od: 17.6.2011.
Poruke: 7.336
Zahvalnice: 94
Zahvaljeno 3.334 puta na 2.010 poruka
|
Re: Download privremeno kreiranog fajla?
Pa ako generišeš sadržaj na serverskoj strani neizvodljivo je da privremeni fajl bude na klijentskoj strani.
U zavisnosti od toga koliko si spreman na kompromise imaš dva načina kako možeš da rešiš svoj problem. 1) Prvi, lakši, podrazumeva da će privremeni fajl ipak biti smešten u zaštićenom /tmp folderu. Proces bi se odvijao na sledeći način: - kad korisnik klikne na "Download" dugme koristiš jQuery load() event handler sa callback funkcijom koja će biti "okinuta" kad dobješ povratni rezultat. - jQuery zahtev na serveru inicira dinamičko kreiranje odgovarajućeg fajla i smešta ga u privremeni fajl na disku - server šalje browseru odgovor sa "Content-disposition: attachement; filename=ime_fajla" headerom i sadržajem privremenog fajla - kada browser primi odgovor prikazuje korisniku dijalog da sačuva/otvori fajl - onog trenutka kad se fajl kompletno preuzme okida se callback funkcija iz load() metode i šalje se zahtev da server obriše privremeni fajl (to može da se uradi sa još jednom load() metodom i callback funkcijom) - kad server odradi zahtev za brisanjem vraća rezultat browseru i pokreće se druga callback funkcija 2) Drugi metod podrazumeva da za sva skladištenja koristiš direktno memoriju na serveru. Za to koristiš PHP streamove i php://memory wrapper. Jednostavno ponoviš sve iz prve tačke ali za sve operacije sa pisanjem/čitanjem privremeno kreiranog fajla koristiš stream sa memory wrapperom. Obrati pažnju - ukoliko su generisani fajlovi veliki ovaj metod može očas posla da ti osakati server. Zato je bolje da koristiš smeštanje privremenih fajlova na hard disk umesto u memoriju. |
Sledeći korisnik se zahvaljuje korisniku Neutrino na korisnoj poruci: | ||
zukov (8.3.2014) |
8.3.2014, 19:54 | #3 |
Član
Član od: 9.11.2005.
Lokacija: Beograd
Poruke: 150
Zahvalnice: 14
Zahvaljeno 0 puta na 0 poruka
|
Re: Download privremeno kreiranog fajla?
Hvala ti na iscrpnom odgovoru.
Ne znam da li si primetio, ali za kreiranje fajla ću koristiti "PHPExcel" i on ima foru da kada se završi sa pravljenje fajla kodom "->save('php://output');" se taj fajl šalje krajnjem korisniku na download bez čuvanja na serveru. Ovo još nisam isprobao, ali izgleda da je tako. Inače će fajlovi biti mali, upitanju je malo detaljniji raspored časova tako da fajlovi neće biti veći od 2-3 A4 stranice. |
Bookmarks sajtovi |
|
|
Slične teme | ||||
tema | temu započeo | forum | Odgovora | Poslednja poruka |
Napredna Srbija, digitalna televizija i DVB-T2 konfuzija (SK 11/2010) | Crytek | Foto i audio/video | 600 | 14.9.2016 23:08 |
Apache: Air Assault | Stranger2 | Simulacije vožnje | 40 | 28.6.2015 12:22 |
Kako podesiti down. manager da download ide jedan za drugim? HELP | stanke | Aplikativni softver | 9 | 20.6.2008 16:38 |
22 Ashampoo programa - BESPLATNO | Torrente | Aplikativni softver | 4 | 6.5.2008 0:19 |
Kako iskljuciti download fajla u Inboxu? | todos | Aplikativni softver | 4 | 23.12.2007 0:55 |