dj.drezyna Posted December 30, 2012 Report Share Posted December 30, 2012 Witam! Chciałbym, by pewien skrypt zczytywał z bazy pewne dane i stworzył wynik w postaci treści zwróconej do przeglądarki. Jednak te pobrane dane mają wyglądać w mniej więcej taki sposób, że jeden rekord daje w wyniku jeden plik, które to pliki po wypakowaniu tego ściągniętego wygenerowanego zip-a mają się w katalogu zwyczajnie znaleźć. Czyli skrypt wygeneruje pliki powiedzmy o nazwach: kopia1.txt konf.txt zachowa je np. do pliku dane.zip (ale bez zapisywania nawet tego pliku zip na dysku serwera), który po rozpakowaniu da te dwa przykładowe pliki. Na pewno takie coś jest do zrobienia ale ja niestety nie wiem od czego zacząć i bardzo byłbym wdzięczny o chociaż wskazówki jak się do tego zabrać. Dziękuję i jednocześnie Wszystkiego Najlepszego w Nowy Roku! Galeria przyrodnicza http://fotokrajobrazy.warmia.pl Link to comment Share on other sites More sharing options...
5corpio Posted December 31, 2012 Report Share Posted December 31, 2012 Po pierwsze jak chcesz tworzyć plik *.txt albo *.zip bez zapisywania na dysku? jak chcesz żeby dane nie były zapisane na dysku to co najwyżej w jakimś buforze je trzeba trzymać na początek ale wtedy ani nie jest to plik zip ani txt ani nic tylko fragment pamięci. Na szybko w dokumentacji php można znaleźć taką klase do archiwów zip: http://php.net/manual/pl/book.zip.php A co konkretnie chcesz osiągnąć bo może coś na okrętke próbujesz zrobić? Ot taka mini-strona moja po godzinach http://www.wnetrzekuchni.pl Link to comment Share on other sites More sharing options...
dj.drezyna Posted January 4, 2013 Author Report Share Posted January 4, 2013 Chodzi mi o to by utworzyć pliki, które będą plikami ale po rozpakowaniu zipa. Nie chcę tworzyć plików na serwerze i potem ich wpakowywać do zipa tylko je utworzyć jedynie w pamięci. No chodzi dokładnie o to by nie zapisywać plików na dysku serwera, które i tak serwerowi nie będą do niczego potrzebne. Chodzi o to by użytkownik dostał plik zip z plikami wygenerowanymi przez zapytanie, które Użytkownik zadał. Przykład. Jest sobie strona przechowująca przykłady skryptów. I chodzi o to by sobie ktoś wszedł na np. id 17, kliknął sobie na ikonkę zapisz i w tym momencie treść kodu wyświetlona sobie na tej stronie została z oryginalnej postaci (z bazy) przekształcona w plik i przesłana do zapisania przez przeglądarkę. Oczywiście do pliku skryptu dołączane są biblioteki inne pomocnicze niezbędne pliki, które też powinny być wygenerowane z odpowiednich tabel bazy danych. Jejku jej! Ten temat jest z zeszłego roku Bardzo byłbym wdzięczny za pomoc. Aaa poszukałem: ZipArchive::addFromString ( string $localname , string $contents ), bo to jest metoda która tworzy plik w zipie racja? No i oto mi chodziło. Tylko pytanko jak nie zapisywać tego zipa na dysku serwera tylko od razu wysłać do przeglądarki? Galeria przyrodnicza http://fotokrajobrazy.warmia.pl Link to comment Share on other sites More sharing options...
5corpio Posted January 5, 2013 Report Share Posted January 5, 2013 Tylko pytanko jak nie zapisywać tego zipa na dysku serwera tylko od razu wysłać do przeglądarki? Nie jestem guru php ale nie da się tak przecież chyba. Php jest interpretowane przez serwer a wynik dostaje klient. Rozwiązaniem wydaje mi się zapisywanie takich zipów w jakimś folderze tymczasowo o jakiś losowych (zmiennych nazwach) nazwach. Potem klient dostaje link a np. w nocy cronem możesz kasować te pliki wszystkie jeśli ich data utworzenia - data_dzis > 24h. Nie wiem jaki poziom zabezpieczeń potrzebujesz etc. ale może ew. takie coś spróbuj: http://viralpatel.ne...ile-javascript/ teraz znalazłem. Nigdy w sumie też nie bawiłem się ajax-em (aż wstyd) ale skoro potrzebujesz pobrać ten kod(tekst) z bazy danych to może właśnie spróbować coś z ajaxem dynamicznie i taki kodzik w JS z góry jakoś połączyć. Czyli: 0. Wsadzasz na stronkę ten kod z js 1. Pobranie danych z DB używając ajaxa (a jak ? to już musisz poszukać tutoriali bo sam też nie wiem acz nie wydaje się to trudne raczej) 2. Przesyłasz pobrane dane z db -> js i tworzysz zipa tak jak w tym przykładzie gdzie jest button "demo" Tak bym spróbował to zrobić Ot taka mini-strona moja po godzinach http://www.wnetrzekuchni.pl Link to comment Share on other sites More sharing options...
dj.drezyna Posted January 6, 2013 Author Report Share Posted January 6, 2013 Ajax czy nie ajax. Tutaj to raczej nie ma znaczenia. Mi raczej chodzi o to czy można niezapisany plik zip zakodować do base64 i zwyczajnie, przepraszam za określenie, ,,wypluć w echo''. Oczywiście w echo bez zapisywania wcześniej. Może to niemożliwe, wtedy będę robił raczej tak jak mówisz, czyli zapisać z czasem i kiedy ktoś inny będzie pobierał usunąć wszystkie np. starsze po godzinie. Galeria przyrodnicza http://fotokrajobrazy.warmia.pl Link to comment Share on other sites More sharing options...
5corpio Posted January 6, 2013 Report Share Posted January 6, 2013 Chyba jednak jestem ...jowy z tego php bo znalazłem takie coś jeszcze: (powinno wymuszać ściągnięcie pliku zip bez zapisywania - zresztą tak tam to określili ludzie) http://stackoverflow...-force-download sprawdziłbym u siebie ale nie mam teraz gdzie ale z ciekawości muszę sprawdzić, któregoś dnia. Ot taka mini-strona moja po godzinach http://www.wnetrzekuchni.pl Link to comment Share on other sites More sharing options...
dj.drezyna Posted January 6, 2013 Author Report Share Posted January 6, 2013 No fajne tylko skąd on wziął metodę ZipArchive::file() ? Nie ma takiej w http://ca3.php.net/manual/en/class.ziparchive.php Galeria przyrodnicza http://fotokrajobrazy.warmia.pl Link to comment Share on other sites More sharing options...
5corpio Posted January 7, 2013 Report Share Posted January 7, 2013 A faktycznie sory nie ma takiej metody. To ciekawe jak oni to rozkminiali. Jak szukałem na necie to część osób proponowała to co już ci mówiłem. Czyli tymczasowe pliki a potem ich kasowanie. Ot taka mini-strona moja po godzinach http://www.wnetrzekuchni.pl Link to comment Share on other sites More sharing options...
dj.drezyna Posted January 8, 2013 Author Report Share Posted January 8, 2013 Spoko! Nie ma co przepraszać. No, a w tym przykładzie rzeczywiście nie ma tej metody, bo inna byłaby bajka gdyby on sobie tą klasę rozszerzył a tak to szczerze nie mam pojęcia jak na tym stackoverflow dziękowali mu za taką fuszerę. Ja, ponieważ zipa potrzebuję do 200kB prze konwersją, to zwyczajnie: 1. tworzę losową nazwę 2. tworzę plik zip o tej nazwie 3. zczytuję zawartość do zmiennej, 4. usuwam utworzony plik i wszystko. A sposób wygląda dokładnie jak opisałeś z tą różnicą że plik jest w jednym wywołaniu skryptu usuwany, bo to góra dwa tysie bajtów tak więc na luziku. Także dziękuję, a jak pamiętam właśnie o metodę prosiłem, a nie o konkretne rozwiązanie, więc uważam temat za rozwiązany, za co dziękuję Tobie jeszcze raz! Galeria przyrodnicza http://fotokrajobrazy.warmia.pl Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.