Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][jquery]session upload progress
Forum PHP.pl > Forum > PHP
marcus753
Witajcie, piszę skrypt do wysyłania pliku na serwer (pliki przejmuje przez diva typu draganddrop lub zwykłego inputa) następnie wysyłam plik (zmienna - file) na serwer korzystając z poniższej funkcji, do tego teraz dorabiam pasek postępu korzystając z nowej funkcjonalności session.upload

(...)

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Założyłem nowy temat w innym dziale bo to bardziej nadaje się do zarządzania serwerami niż programowania php ale skoro mam kontynuować jeden temat to kontynuuje wink.gif

Uprościłem maksymalnie powyższy kod, teraz mamy 3 proste pliki:

up1.php <- tutaj wybieramy jakiś plik do uploadu
up2.php <- do tego pliku formularz jest przekazywany i właśnie w nim występuje błąd
up3.php <- służy do podglądu transferu jak duża część pliku odebranego przez up2.php została już wgrana na serwer

up1.php

  1. <?php session_start();?>
  2. <form action="up2.php" method="POST" enctype="multipart/form-data">
  3. <input type="file" name="nazwa" />
  4. <input type="hidden" name="<?php echo ini_get("session.upload_progress.name"); ?>" value="plik" />
  5. <input type="submit" value="wyslij" />
  6. </form>



---------------------------------------------------------------------
up2.php

  1. //wygranie pliku na serwer
  2. if(move_uploaded_file($_FILES['nazwa']['tmp_name'], 'up.jpg')) echo "wgrano plik";
  3. ?>




---------------------------------------------------------------------
up3.php

  1. <?php session_start();
  2. //wyswietlenie danych ładowania strony
  3. $key = ini_get("session.upload_progress.prefix") .'plik';
  4. var_dump($_SESSION[$key]);
  5. ?>




W pliku php.ini mam wyłączoną opcję session.upload_progress.cleanup =0 i właśnie tylko wtedy gdy ta opcja jest wyłączona pojawia się błąd:

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request


błąd pojawia się w pliku up2.php podczas wysyłania formularza z pliku up1.php do pliku up2.php, jeśli formularz nie zawiera tej linijki błąd nie występuje:


  1. <input type="hidden" name="<?php echo ini_get("session.upload_progress.name"); ?>" value="plik" />


Skrypty oczywiście testowałem na php w wersji 5.4 i 5.5

Jeśli ktoś będzie miał jakikolwiek pomysł co to może być, uprawnienia,chmody,sesje,options.config będę wdzięczny za każdą sugestie
markuz
Sprawdź logi serwera - tam wszystko powinno być opisane bardziej szczegółowo.
marcus753
@markuz dzięki za wskazówkę oto one:

[xxx 2014] [error] [xxx] , referer: xxx/up1.php
[xxx 2014] [error] [xxx] Premature end of script headers: up2.php, referer: xxx/up1.php


W ogóle jest chociaż jedna osoba której działa session.upload_progress ? osiwieć można... facepalmxd.gif

yahoo.gif
Nic mnie już w życiu nie zdziwi... 3dni zmarnowane a rozwiązanie było tak oczywiste... szkoda tylko że manual nie wspomina o tym ani słowem mad.gif
Dzięki wszystkim za pomoc i zainteresowanie !

Dla potomnych: (rozwiązanie)

poprawny formularz:
  1. <form action="upload2.php" method="POST" enctype="multipart/form-data">
  2. <input type="hidden" name="<?php echo ini_get("session.upload_progress.name"); ?>" value="plik" />
  3. <input type="file" name="nazwa" />
  4. <input type="submit" value="send" />
  5. </form>


niepoprawny formularz:
  1. <form action="upload2.php" method="POST" enctype="multipart/form-data">
  2. <input type="file" name="nazwa" />
  3. <input type="hidden" name="<?php echo ini_get("session.upload_progress.name"); ?>" value="plik" />
  4. <input type="submit" value="send" />
  5. </form>
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.