Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem: copy, przenoszenie na inna podstrone, itp
Forum PHP.pl > Forum > PHP
Norbit_24
Funkcją copy() kopiuje pewien plik na moje ftp i to jest ok, ale gdy plik ma duży rozmiar np. 70mb wrzucanie go na ftp długo trwa dlatego chciałem to jakoś przerwać, tzn wysłać linka do tej funkcji i żeby przeniosło mnie gdzies na inna podstrone a żeby plik skrypt wykonywał sie nadal.. Jest to możliwe..? Jeśli tak to jak to zrobić?

Z góry dzięki.
WebCM
Zapoznaj się z działem: http://pl.php.net/manual/en/book.misc.php

  1. set_time_limit(0); //Możesz ustawić konkretną wartość
  2.  
  3. header('Location: innastrona.html'); //a teraz przekieruj przeglądarkę
Norbit_24
To nie działa.. Bo jesli ustawię

  1. set_time_limit(0); //Możesz ustawić konkretną wartość
  2.  
  3. copy();
  4. header('Location: innastrona.html'); //a teraz przekieruj przeglądarkę


To dalej widać jak plik się kopiuje i nie da sie chodzić po www. I jak sie plik juz wrzuci na ftp to wtedy dopiero przekierowuje.
WebCM
Spróbuj przekierować przed wywołaniem copy(). Ignorujemy przerwanie żądania, więc skrypt powinien wykonywać się dalej.
Norbit_24
tak tez próbowałem. wykonuje się nadaj tzn kopiuje i gdy zakończy to wtedy przekierowuje
WebCM
Po wysłaniu nagłówka wywołaj:
Jeżeli wyświetli się FALSE, trzeba zmusić serwer, aby wysłał nagłówki. Po wywołaniu header() pokombinuj z funkcją flush albo wyślij cokolwiek do przeglądarki za pomocą instrukcji echo, np. pusty ciąg tekstowy. Na pewno są lepsze sposoby oprócz wyżej wymienionych.

Ostatecznie zostaje register_shutdown_function, ale możesz doświadczyć braku możliwości dostępu do plików (ewentualnie wtedy podaj pełną ścieżkę, taką, jaka jest widoczna w systemie).
Norbit_24
Nie wiem jak to użyć dokładnie.. tą ostatnia funkcje..

  1. <form action="sciagaj.php">
  2. <textarea name="linki" id="linki" rows="15" cols="55"></textarea>
  3. <br /><button>DODAJ PLIKI</button>
  4. </form>


sciagaj.php

  1.  
  2. //tutaj kod przetwarzający linka z wrzuty
  3.  
  4. header('Location: <a href="http://str.pl/nazwa.mp3&#39%3b%29;" target="_blank">http://str.pl/nazwa.mp3');</a>
  5. copy();
mortus
Wszystko o header()
WebCM
No niestety, PHP nie obsługuje wielowątkowości.

Z tego, co widzę, nie musisz nigdzie przekierowywać, chyba że nie chcesz mieszać kodu PHP z HTML-em.

  1.  
  2. //tutaj kod przetwarzający linka z wrzuty
  3.  
  4. header('Location: adres_innej_podstrony'); //nie wpisuj tu kodu HTML, tylko pełny adres
  5. echo '<a href="adres_innej_podstrony">tytuł linku</a>'; //na wypadek, gdyby przekierowanie nie zadziałało
  6. flush(); //ewentualnie użyj tej funkcji
  7. copy();

Twoja decyzja, jak to rozwiążesz. Możesz użyć także register_shutdown_function, aby opóźnić operację, jeśli nie chcesz przekierowywać albo nie możesz wyświetlić innej podstrony instrukcją echo() wewnątrz kodu PHP.
Norbit_24
Nie wiem czy ja coś źle robię czy to nie działa..;/
Dalej nie da się przejść na inna podstronę bo wczytuje..

Nie wiem co już robić.. Moge pokazać jakiejś osobie kod (np. na PW,gg, proszę o wiadomość PW), na forum nie chcę podawać pełnego kodu.

ref
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-2025 Invision Power Services, Inc.