Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Przetwarzanie pliku bez pobrania, jak przetwarzac plik z kompa użytkownika
-Josef S.-
post
Post #1





Goście







Witam

Mam plik duuuuży [na razie 5MB a będzie rósł] (xml) który chcę przetworzyć przez skrypt i dodać do bazy mySQL.

Testowałem na kompie w domu napisany skrypt na win/apache - działa, ale w przypadku serwera na któwym to będzie finalnie - muszę najpierw przesłać ten plik... a to trwa i trwa i trwa... i wychodzą timeouty... nie mam wpływu na konfiguracje serwera sad.gif

PYTANIE:
Czy możliwe jest użycie pliku w skrypcie php bez przesyłania pliku na serwer?questionmark.gif


Będę wdzięczny za jakiekolwiek podpowiedzi.

Josef S.
Go to the top of the page
+Quote Post
L_Devil
post
Post #2





Grupa: Zarejestrowani
Postów: 195
Pomógł: 0
Dołączył: 13.04.2004
Skąd: Łódź

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


Z tego co wiem, nie.

Możesz natomiast przesłać go przez ftp i wykonać na serwerze...


--------------------
Językiem którym najlepiej operują wszyscy programiści są przekleństwa.
Go to the top of the page
+Quote Post
-Josef S.-
post
Post #3





Goście







przy próbie wysylania przez ftp otrzymuje błąd wynikający z przekroczenia czasu dostepu do serwera


[CODE]
<?php

$hostip = gethostbyname($host);
$conn_id = ftp_connect($hostip);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

if ((!$conn_id) || (!$login_result)) {
echo "FTP connection has failed!";
echo "Attempted to connect to $host for user $ftp_user_name";
die;
} else {
echo "Connected to $host, for user $ftp_user_name<br>";
echo "Host IP is $hostip<br>";
ftp_set_option($conn_id,FTP_TIMEOUT_SEC,360);
ftp_pasv ( $conn_id, true );


// upload a file
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
echo "successfully uploaded $file<br>";
} else {
echo "There was a problem while uploading $file<br>";
}

// close the connection
ftp_close($conn_id);
}
?>
[CODE]
zwraca info o przekroczonym czasie dostepu rolleyes.gif


nie mam wpływu na konfiguracje serwera

jakies sugestie?questionmark.gif?
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


To jest proste: zeby skrypt przetworzyl plik musi miec go u siebie na dysku serwera, lub musi go pobrac podczas wykonywania.
1. nie masz tego pliku na dysku wiec z tej opcji nie skorzystasz
2. podczas pobierania pliku (ftp czy fopen) zostaje przekroczony limit czasu wykonywania skryptu, tez odpada.

Pomysl nad innym, rozwiazaniem.

Jak czesto musisz ten plik przerabiac na serwerze -- moze wystarczy recznie (przez clienta ftp) przeslac ten plik a potem go przemielic?


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
-Josef S.-
post
Post #5





Goście







niestety baza musi byc aktualizowana codziennie blink.gif :roll2:
Go to the top of the page
+Quote Post
staspolo
post
Post #6





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 2.06.2005

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


można przedłużyć limit w php (poszukam jutro)
lub
wykonać to w trybie wsadomy
prześłać na ftp na pomocą jakiegoś batcha wykonywanego za pomocą "harmonogramu"

wyglad pliku wsadowego np: wsad.txt
Cytat
open twoj.serwer.ftp
user twoj_login
pass twoje_haslo
bin
hash
cd /katalog/
mget plik.jpg
bye


następnie wykonać poleceniem ftp.exe -s:wsad.txt


tyle ze plik wsadowy jest 'skomponowany' do pobrania plkiu a nie do wysylania wiec musisz go sobie troche przerobic pomoc dostepna w ftp.exe poprzez komende ?

jak cos wymyslisz daj znac bo to akurat tez mój aktualny temat
moze znajdzisz jakis program "autoftp"
Go to the top of the page
+Quote Post
-Guest-
post
Post #7





Goście







Możesz spróbować dać set_time_limit i przedłużyć czas wykonywania skryptu albo tak jak Ci podpowiadają ręcznie wgrywać na ftp a zrobić skrypt, który automatycznie go znajdzie, np. po dacie lub nazwie wg szablonu. Jeśli plik jest przesyłany raz dziennie, to nie powinno to być problemem.
Go to the top of the page
+Quote Post
ActivePlayer
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

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


set_time_limit(0);
fopen albo fsockopen
ja bym to chyba tak zrobil.
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 Aktualny czas: 21.08.2025 - 12:29