Forum Sveta kompjutera

Nazad   Forum Sveta kompjutera > Internet > Web razvoj

Web razvoj Sve u vezi sa razvojem Internet sajtova: programi, dizajn, usluge hostinga, administracija...

Odgovor
 
Alatke vezane za temu Vrste prikaza
Stara 6.3.2014, 14:02   #1
zukov
Član
 
Član od: 9.11.2005.
Lokacija: Beograd
Poruke: 150
Zahvalnice: 14
Zahvaljeno 0 puta na 0 poruka
Određen forumom 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
zukov je offline   Odgovor sa citatom ove poruke
Stara 6.3.2014, 16:33   #2
Neutrino
Deo inventara foruma
 
Član od: 17.6.2011.
Poruke: 7.071
Zahvalnice: 92
Zahvaljeno 3.166 puta na 1.916 poruka
Određen forumom 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.
Neutrino je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku Neutrino na korisnoj poruci:
zukov (8.3.2014)
Stara 8.3.2014, 19:54   #3
zukov
Član
 
Član od: 9.11.2005.
Lokacija: Beograd
Poruke: 150
Zahvalnice: 14
Zahvaljeno 0 puta na 0 poruka
Određen forumom 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.
zukov je offline   Odgovor sa citatom ove poruke
Odgovor

Bookmarks sajtovi

Alatke vezane za temu
Vrste prikaza

Vaš status
Ne možete postavljati teme
Ne možete odgovarati na poruke
Ne možete slati priloge uz poruke
Ne možete prepravljati svoje poruke

BB kod: uključeno
Smajliji: uključeno
[IMG] kod: uključeno
HTML kod: isključeno


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


Sva vremena su po Griniču +2 h. Sada je 17:35.


Powered by vBulletin® verzija 3.8.7
Copyright ©2000–2021, vBulletin Solutions, Inc.
Hosted by Beograd.com