Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Komunikacja z serwerem
Forum PHP.pl > Forum > PHP
ShaggyAG
Cześć,

Mam skrypt w PHP, który kolejno wczytuje pliki JPG z folderu X następnie odczytuje znajdujący się na nich kod kreskowy i zapisuj przetwarzany plik z nową nazwą bazując na odczytanym kodzie.
I do tego momentu wszystko działa.
Chce teraz dorobić frontend który pozwoli na taki obieg:
- Uruchamiam skrypt skanuj.php ze strony głównej index.php (np AJAXem)
- skrypt przetwarza kolejne pliki
- skrypt natrafia na plik na którym nie udało się odczytać kodu kreskowego.
- na stronie głównej wyświetlany zostaje aktualnie przetwarzany plik (tan na którym odczyt się nie powiódł) oraz input do ręcznego wpisania nowej nazwy pliku
- użytkownik podaje nową nazwę pliku
- skrypt zapisuje przetwarzany plik na podstawie danych z inputu
- skrypt pracuje dalej.
- sytuacja może się powtórzyć dowolną ilość razy
- skrypt kończy prace po odczytaniu wszystkich plików w katalogu X

Moje pytanie jest bardzo ogólne.
Czego użyć do takiej dwustronnej komunikacji?
Myślałem o Server-sent events ale tu chyba komunikacja działa tylko w jedną stronę.
Czy rozwiązanie typu:
-ajax odpala skanuj.php
-skanuj zwraca error z nazwą pliku której nie udało się otworzyć.
-javascript wyświetla ten plik + input
- idzie nowy ajax z danymi który nazywa plik i odpala skanuj.php

Czy takie rozwiązanie ma sens? Czy jest coś lepszego?
Z góry dziękuje za porady.




luniak
Jeżeli będziesz i tak siedzieć przy pracującym skrypcie to proponuję Ci następujące rozwiązanie.

Skrypt w każdym wywołaniu niech zwaraca Ci jsona z informacjami / statusem przerobienia danego pliku.
W htmlu robisz sobie "interface" który ajaxem wywołuje skrypt i procesuje zwróconą informację i jeżeli ma status ok to wywołuje ponowanie skypt, a jak zwróci błąd to wyświetlasz sobie kod i pole smile.gif
SmokAnalog
Taka luźna uwaga: czy w tych obrazkach znajduje się tylko kod kreskowy? Bo jeśli tak, to JPG jest chyba najgorszym z możliwych wyborów formatu plików.
trzczy
Ja bym zrobił generator unikalnych nazw i niech same się nadają. Potem, jak user ma czas, może podejść do zmieniania nazw. Bo po co to zatrzymywanie działania.
ShaggyAG
Dziękuje za Wasze odpowiedzi.

luniak Takie rozwiązanie właśnie biorę pod uwagę. Zastanawiam się jedynie czy AJAX jest optymalnym rozwiązaniem. Skrypt jednorazowo przetwarza około 500 plików (wszytko jest uruchamiane na localhost).

SmokAnalog Wejściowe pliki z których jest odczytywany kod to JPG. Po odczytaniu są zapisywane do PDF.

trzczy pliki są przetwarzane w kolejności utworzenia, co jest tu kluczowe. Skrypt działa tak, że jeżeli z przetwarzanego pliku odczytany kod jest różny od kodu z poprzedniego pliku tworzony jest nowy PDF. Jeżeli jest taki sam to jest dodawany do poprzedniego PDFa, jako kolejna strona. I teraz, jeżeli mamy trzy pliki JPG, wszystkie z takim samym kodem (jeden dokument dostawy z trzema stronami) i na stronie np. 3 kod będzie nieczytelny to utworzy się plik PDF z unikalna nazwą ze stroną nr 3 i poprawnie nazwany plik z stronami 1 i 2. Plików jest bardzo dużo, więc późniejsze ich ręczne łączenie byłoby zbyt czasochłonne.
SmokAnalog
Możesz opisać dokładniej na czym polega Twój projekt? Bo to przetwarzanie JPG w poszukiwaniu kodów kreskowych mi trochę śmierdzi złym pomysłem. Robisz zdjęcia produktów i potem przetwarzasz kody kreskowe? Czy może to użytkownicy wysyłają te zdjęcia (ogromna szansa, że będzie nieczytelne)?
ShaggyAG
SmokAnalog Pracuję w dużej firmie logistycznej w dziale transportu. Dostarczamy towar do odbiorców w całej Polsce. Dziennie około 500 przesyłek/klientów. Projekt dotyczy dokumentacji przewozowej( na każdym dokumencie dostawy znajduje się kod kreskowy z numerem zamówienia). Dokumenty po dostawie do klienta są zwracane do oddziału następnie skanowane do JPG (JPG dlatego że w skrypcie odczytującym kod nie udało mi się wczytać przez GD innych formatów). 98% dokumentów ma poprawny kod i poprawnie się on odczytuje. Cały projekt jest mojego autorstwa i między innymi również na moje potrzeby, więc chce żeby działał jak najlepiej z uwzględnieniem tych pozostałych 2 %. Brak odczytu kodu wynika z dwóch przyczyn:
- Na dokumencie nie ma kodu (np. protokół z rozbieżności w dostawie)
- Oryginalny dokument uległ zniszczeniu i kod jest nieczytelny.
JPG jest tylko fazą przejściową po skanowaniu. Finalnie skany są zapisywane do PDF.
SmokAnalog
Trochę dziwacznie i nieefektywnie macie to rozwiązane. Zwykle w takich firmach to dostawca nosi mały skanerek i można na bieżąco śledzić co się dzieje.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.