Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> zapisanie pliku zamiast wykonania
FireFox
post 3.08.2007, 09:41:15
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 26.01.2007

Ostrzeżenie: (0%)
-----


Witam serdecznie

Spotkałem się z bardzo dziwnym zachowaniem skryptu
Zamiast wykonania przegladarka "oferuje" zapisanie pliku. Dzieje sie tak po uruchomieniu pliku php. Skrypt działa i po 10-15 sekundach pojawia sie komunikat, czy chcesz zapisać plik (php). Po potwierdzeniu zapisuje sie na dysku lokalnym plik o rozmiarze 0 bajtow. Plik wykonuje operacje na plikach nie przekraczajacych 20MB. Na poczatku sadzilem ze sytuacja spowodowana jest wydluzonym czasem dzialania skryptu ale po zmianie max_execution_time nic sie nie zmienilo. Chcialem zapytac szanownych forumowiczow czy ktos spotkal sie z podobna sytuacja i jak sobie z nia poradzil. Za wszelkie uwagi bede bardzo wdzieczny.

pozdrawiam wszystkich Fox

Ten post edytował FireFox 3.08.2007, 09:42:07
Go to the top of the page
+Quote Post
john_doe
post 3.08.2007, 09:57:42
Post #2





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

Ostrzeżenie: (0%)
-----


hmmmm coś mi sie wierzyć nie chce.... rzuć cały kod tego skryptu
Go to the top of the page
+Quote Post
FireFox
post 6.08.2007, 08:05:36
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 26.01.2007

Ostrzeżenie: (0%)
-----


  1. ini_set ( 'max_execution_time', 0 );
  2.  
  3. // dane konfiguracyjne
  4.  
  5. $dirName = 'PlikiWsadowe/';
  6.  
  7. $dirDone = 'FilesDone/';
  8.  
  9. $dirMovie = 'FilesMovie/';
  10.  
  11. $dirFFMPEG = 'xxxxxxx/ffmpeg ';
  12.  
  13.  
  14.  
  15. // koniec danych configuracyjnych
  16.  
  17. if ( $Handle = opendir( $dirName ) )
  18. {
  19. while ( false !== ( $file = readdir( $Handle ) ) )
  20. {
  21. $FullPath = $dirName . $file;
  22.  
  23. $PathParts = pathinfo( $FullPath );
  24.  
  25. if ( !is_dir( $FullPath ) && $file != 'CVS' && $file != '.' && $file != '..' )
  26. {
  27. $arrFiles[] = trim( $file );
  28. }
  29. }
  30. closedir( $Handle );
  31.  
  32. print 'znalezione pliki';
  33.  
  34. ?><pre><? print_r ( $arrFiles ); ?> </pre> <?
  35.  
  36.  
  37.  
  38. // wykonujemy operacja dla wszystkich plikow z tablicy $arrFiles
  39.  
  40. if ( $arrFiles )
  41. {
  42. // ladowanie bibliotek
  43. $extension = 'ffmpeg.so';
  44. $extension_soname = $extension . '.' . PHP_SHLIB_SUFFIX;
  45. $extension_fullname = PHP_EXTENSION_DIR . '/' . $extension_soname;
  46.  
  47. //echo $extension_fullname;
  48.  
  49. if ( ! extension_loaded( $extension ) )
  50. {
  51. dl( $extension ) or die( 'lib niedostepny: $extension_fullname' );
  52. }
  53.  
  54. foreach ( $arrFiles as $file )
  55. {
  56.  
  57. $strDestinationName = md5( microtime() );
  58.  
  59. //przenosimy plik
  60. if ( is_file ( $dirName . $file ) )
  61. {
  62. $FileSource = $dirName . $file;
  63.  
  64. $strParameters = '-y -ar 22050 -acodec mp3 -ab 32 -f flv -s 330x220';
  65.  
  66. $FileOut = $dirMovie . $strDestinationName . '.flv';
  67.  
  68. $strKomenda = $dirFFMPEG . '-i ' . $FileSource . ' ' . $strParameters . ' ' . $FileOut . '' ;
  69.  
  70. exec( $strKomenda );
  71. }
  72.  
  73. $arrExt = explode ( '.', $file );
  74. $nameFile = $arrExt[0];
  75.  
  76. $objMovie = new ffmpeg_movie( $FileOut );
  77. $Time = floor( $objMovie->getDuration() );
  78.  
  79.  
  80. // czasy klatek do pobrania
  81. $Frame2 = floor ( $Time / 3 ); 
  82. $Frame3 = floor ( $Frame2 * 2 );
  83. $arrFrames = array ( 0, $Frame2, $Frame3 );
  84.  
  85. foreach ( $arrFrames as $key=>$val )
  86. {
  87. $imgName = $dirDone . $strDestinationName . '_' . $key . '.jpg';
  88.  
  89. $strKomenda = $dirFFMPEG . '-i ' . $dirMovie . $strDestinationName . '.flv -s 150x100 -vframes 1 -ss ' . $val . ' -f mjpeg ' . $imgName ;
  90. exec( $strKomenda );
  91. print ( 'Dla pliku <b>' . $file . '</b>(' . $strDestinationName . '.flv) zostala utworzona miniatura o nazwie ' . $imgName . '<br /><br />' );
  92.  
  93. }
  94.  
  95.  
  96. // dopisanie pliku do bazy i pobranie jego ID
  97.  
  98. // koniec dopisania pliku w db
  99.  
  100.  
  101. print ( 'Plik <b>' . $file . '</b> zostal dodany pod nazwa ' . $strDestinationName . '.flv<br>' );
  102.  
  103. // czasy klatek do pobrania
  104. $Frame2 = floor ( $Time / 3 ); 
  105. $Frame3 = floor ( $Frame2 * 2 );
  106. $arrFrames = array ( 0, $Frame2, $Frame3 );
  107.  
  108. foreach ( $arrFrames as $key=>$val )
  109. {
  110. $imgName = $dirDone . $strDestinationName . '_' . $key . '.jpg';
  111.  
  112. $strKomenda = $dirFFMPEG . '-i ' . $dirMovie . $strDestinationName . '.flv -s 150x100 -vframes 1 -ss ' . $val . ' -f mjpeg ' . $imgName ;
  113. exec( $strKomenda );
  114. print ( 'Dla pliku <b>' . $file . '</b>(' . $strDestinationName . '.flv) zostala utworzona miniatura o nazwie ' . $imgName . '<br /><br />' );
  115.  
  116. // dopisanie mini do bazy danych
  117. }
  118. }
  119. }


dla przejrzystosci wyciolem ze skryptu dzialania sql'owe

plik konwertuje filmy (prezentacje w formie filmu avi) do formatu flasha flv.
na poczatku konwertowalem kilka plikow na raz (stad petla na poczatku) pozniej dzialania realizowalem juz tylko na jednym pliku.

dzialanie pliku

pobranie pliku(plikow) z katalogu pliki wsadowe
operacje: konwersja do formatu flv, skalowanie, itp.
zapisanie pliku
utworzenie trzech miniatur z trzech roznych czasow filmu

czesto zdarza sie ze skrypt nie wykonuje sie tylko chce zapisac go w formie pliku php o zerowej pojemnosci

ponizej podaje screenshot


sytuacja jest dla mnie bardzo dziwna
nie wiem jak sobie z tym poradzic
prosze o pomoc

naprawde nikt nie spotkał sie z podobnym problemem?
Go to the top of the page
+Quote Post
cicik
post 6.08.2007, 08:09:36
Post #4





Grupa: Zarejestrowani
Postów: 219
Pomógł: 5
Dołączył: 18.07.2006
Skąd: Piekary Śląskie

Ostrzeżenie: (0%)
-----


Inne skrypty działają dobrze?
Miałem coś takiego jak Apache był źle skonfigurowany.


--------------------
CMS dla Twojej firmy
Wojciech Małota
Go to the top of the page
+Quote Post
FireFox
post 6.08.2007, 12:49:43
Post #5





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 26.01.2007

Ostrzeżenie: (0%)
-----


wszystkie inne dzialaja poprawnie, niestety serwer jest wirtualny i nie mam dostepu do ustawien apacha
Go to the top of the page
+Quote Post
cicik
post 7.08.2007, 12:08:52
Post #6





Grupa: Zarejestrowani
Postów: 219
Pomógł: 5
Dołączył: 18.07.2006
Skąd: Piekary Śląskie

Ostrzeżenie: (0%)
-----


Jak mi nie działało to każdy plik *.php się downlodował więc w Twoim przypadku Apache jest OK.


--------------------
CMS dla Twojej firmy
Wojciech Małota
Go to the top of the page
+Quote Post
FireFox
post 7.08.2007, 12:15:08
Post #7





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 26.01.2007

Ostrzeżenie: (0%)
-----


powiem Wam wszystkim ze to jakas tragedia jest.
Stracilem juz wszelkie pomysly na temat dlaczego to nie dziala.
Niestety mam dostep tylko do jednego serwera z ffmpeg i nie moge tego przetestowac na innym. Moze ktos z Was bylby na tyle mily i sprawdzil by moje wypociny.
Sznurek juz kupiony
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 22.06.2025 - 12:15