Strona ogłoszeń (Tamaranha v2
Środowisko rocky linux8 php 7,2 nginx 1,28,2 mysql 8,00,44 Yi 1 bootstrap 3,3,7 vps 8 wątków, 24 RAM, 2000nyme
Wdrożyć w JS-ładowarkę zdjęć przechwytywanie zdarzenia wyboru plików (change na input[type==file] lub hook AJAX-ładowarki). Jeśli użytkownik przesyła format HEIC / HEIF (z iPhone'a), skonwertować go po stronie klienta na JPEG za pomocą biblioteki heic2any. Dodatkowo: Jeśli użytkownik przesyła duże PNG, WebP lub JPEG (powyżej 3-5 MB), skompresować je przez HTML5 Canvas do maksymalnej szerokości 1920px i jakości quality: 0.85 w formacie JPEG. Zrealizować sekwencyjne przetwarzanie (kolejka), aby przy jednoczesnym wyborze kilku zdjęć przeglądarka nie zawieszała się. Na wyjściu w żądaniu AJAX zamiast oryginalnych plików powinien być podstawiony wygenerowany Blob (JPEG). Wynik: Silnik strony powinien bez błędów przyjmować skompresowane pliki JPEG, jakby były pierwotnie przesyłane w tym formacie. Kod samego silnika PHP nie może być zmieniany
Niech freelancer najpierw stworzy na swoim komputerze lub testowym hostingu zwykłą pustą stronę HTML z tym formularzem przesyłania
Po pomyślnym teście izolowanego skryptu zezwalamy na przeniesienie kodu do szablonu Tamaranha
: Strona powinna pomyślnie przyjmować formaty HEIC, WebP, AVIF, JFIF, TIFF, BMP. Skrypt powinien sprawdzać rozszerzenie lub MIME-typ przychodzącego pliku. Jeśli format różni się od standardowego JPEG/JPG, skrypt powinien automatycznie przekonwertować go na JPEG po stronie klienta (w przeglądarce) i dopiero potem wysłać żądanie AJAX na serwer
Zrealizować konwersję klienta dowolnych zewnętrznych formatów obrazów na standardowy JPEG przed wysłaniem AJAX na serwer. Silnik strony: Tamaranha v2. Kod PHP/jądro strony nie może być zmieniany. Wymagania techniczne: Skrypt powinien przechwytywać pliki w AJAX-ładowarce przed wysłaniem na serwer. Jeśli użytkownik wybiera formaty HEIC, WebP, AVIF, JFIF, TIFF, BMP lub duży PNG, skrypt powinien na bieżąco konwertować je na JPEG siłą przeglądarki (używając heic2any i HTML5 Canvas). Krytycznie ważne dla Tamaranha: Wynik konwersji powinien być umieszczony w obiekcie new File() z rozszerzeniem .jpg i podstawiony w wysyłanym FormData zamiast oryginalnego pliku. Wszystkie oryginalne nazwy pól (name), struktury tablic i parametry AJAX Tamaranha muszą być ściśle zachowane, aby serwerowa część silnika przyjęła plik jako zwykły JPEG i standardowo wygenerowała wszystkie wewnętrzne miniatury (thumbnails). Skonfigurować sekwencyjne przetwarzanie (kolejka Promise), aby przy zbiorczym przesyłaniu 5-10 zdjęć przeglądarka smartfona nie zawieszała się