Pracuję ostatnio trochę z Laravelem, zatem w przyszłości może powstać kilka krótkich wpisów na ten temat. Dzisiaj pierwsza rzecz, prosta ale często przydatna – pakowanie plików do ZIP z opcjonalnym pobieraniem archiwum.

Tworzenie archiwum ZIP
Skorzystamy z klasy ZipArchive.
1 | use ZipArchive; |
Zaczniemy od krótkiej deklaracji ścieżki i nazwy nowego archiwum ZIP.
1 2 3 | $downloadDir= '../download'; $archiveFileName = 'archive.zip'; |
Tworzymy nowy obiekt klasy ZipArchive.
1 | $zip = new ZipArchive; |
Sprawdzamy, czy archiwum może być utworzone we wskazanej ścieżce. Tutaj za chwilę będziemy pakować pliki.
1 2 3 4 5 | if ($zip->open($downloadDir. '/' . $archiveFileName, ZipArchive::CREATE) === TRUE) { // tutaj pakujemy pliki $zip->close(); } |
Pakowanie plików
Sprawdzamy, czy plik istnieje, a następnie dorzucamy do do paczki. Opcjonalnie możemy przypisać mu nową nazwę.
1 2 3 4 | $file = '../path/to/file.pdf'; if(file_exists($file)) $zip->addFile($file, 'New Name.pdf'); |
Pobieranie archiwum ZIP
Przekazujemy ścieżkę pliku, jego nazwę…
1 2 3 4 | if(file_exists($downloadDir. '/' . $archiveFileName)) { return response()->download($downloadDir. '/' . $archiveFileName, $archiveFileName, $headers); } |
Naszym nagłówkiem będzie:
1 2 3 | $headers = array( 'Content-Type' => 'application/octet-stream', ); |
Po wykonaniu skryptu przeglądarka uruchomi pobieranie.

Podsumowanie
To w zasadzie wszystko. Pełny kod możecie podejrzeć na moim GitHubie.
Tagi: archiwum • Laravel • PHP • pobieranie • top • zip • ZipArchive
mp78stw
Witam, chciałbym zapytać się, czy da się zrobić coś takiego w tabeli za pomoca CSS albo innego programu, coś takiego, że: - mam tabelę z wierszami i kolumnami, gdzie tabela wygląda tak: Kolumna1 kolumna2 kolumna3 wiersz1 1 2 2 wiersz2 4 5 6 wiersz3 2 5 8 - jak zrobić w tej tabeli, żeby mógł wybrać przecinający się wiersz i kolumnę, tak żebym np. dla wiersza2 i kolumny3 podświetliło mi 6? Albo, żebym mógł najpierw przesunąć całą podświetloną kolumnę na pozycję kolumny3 i zablokować tą pozycję, a potem przesunąć cały wiersz podświetlony na pozycję wiersz2 i zablokować, tak żebym mógł odczytać wartość 6 (z przecinających się kolumny3 i wiersza2, a po odczytaniu tej wartości, żeby można było odblokować kolumnę 3 i wiersz 2 i szukać innego wyniku z przecięcia innych kolumn i wierszy?2023-02-06 09:43:57