ugrás a tartalomhoz

Fájl mentés

pasztiz · 2008. Jan. 24. (Cs), 14.25
Sziasztok!

Adott egy URL (.../letoltes/index.ind?do=download&=HU0722), amire ha ráklikkelek, akkor felugrik a fájl letöltése panel, és le tudom menteni a fájlt.
Meg lehet ezt oldani, kattintgatás nélkül, teljesen automatikusan?
A linkre igazából nincs szükségem, de most csak azzal tudtam megoldani a problámát.
Csak puszta php kódolással html részek nélkül meg lehet oldani valahogy? (HTTP függvény?)
 
1

Mit értesz automatikus alatt?

Nagy Gusztáv · 2008. Jan. 24. (Cs), 15.30
Arra gondolsz, hogy a látogató betölti az oldalt, és már dobjon is egy ablakot? Vagy akár még azt se, csak mentsen? Első eset JS-ből: onLoad eseményre kezdeményezhető, de a második szerencsére nem megy.
Jó lenne többet tudni.
2

Csak mentsen

pasztiz · 2008. Jan. 24. (Cs), 16.12
A második, csak mentsen. Vagyis ha betöltődik az oldal, akkor töltődjön le a fájl lokálisan v. szerverre.
A legjobb lenne szerverre, mert akkor már a feltöltéssel sem kell foglalkoznom.

Most ez így néz ki:
1. Összeállítom az URL-t
2. az URL-re veló kattintás után felugrik a mentés ablak, lementem a fájlt a PC-re
3. fájl feltöltése szerverre, fájl bedolgozása

Na ezt szeretném automatizálni, magyarul betöltöm a php-t, az megcsinálja a fent leírt dolgokat, és csak annyit írok ki, hogy "kész".

Megoldható, vagy marad a kézi hajtány?
3

Nem értem?

zila · 2008. Jan. 24. (Cs), 16.21
Tehát a szereveren összeállítasz egy file-t, amit szintén ugyanezen a szerveren akarsz feldolgozni? Mert akkor nem értem :)

1. Miért nem egyből dolgozod fel és írod ki, hogy kész?
2. Ha egy menetben nem lehet, akkor a szerverre tudsz menteni (rtfm://hu2.php.net/function.fopen)
4

Nem

pasztiz · 2008. Jan. 24. (Cs), 16.26
Egy másik szerverről kell letölteni a fájlt.
5

ok

zila · 2008. Jan. 24. (Cs), 16.33
A feldolgozó szerver is letölthetné magának a file-t... curl, wget, xml-rpc, soap?
7

ok

pasztiz · 2008. Jan. 24. (Cs), 16.38
Igen, az lenne a legjobb.
De amit a ... után írsz, azt nem értem.

fopen-t meg próbáltam, de time out-ra fut, míg ha a mentést nyomom, akkor 1-2mp alatt letöltődik a fájl.
15

támpontok

zila · 2008. Jan. 24. (Cs), 17.44
Próbáld meg a google-be írni, hogy php curl, vagy php xml-rpc, esetleg php soap... de fopen is jó lehet, esetleg fsock. Persze információ hiányában feltételeztem mindkét szerverhez hozzáférsz (ezért javasoltam lehetséges megoldásként az xml-rpc-t, soap-ot), ha csak a feldolgozóhoz férsz hozzá, akkor marad a curl, wget, fsock, fopen.
17

onLoad

pasztiz · 2008. Jan. 25. (P), 12.18
És onLoad-dal, hogy lehet megoldani?
6

Fájl tmentése másik szerverről

vbence · 2008. Jan. 24. (Cs), 16.38
Ahogy előttem írták (ha engedélyezve van a funkcionalitás - fopen url wrappers), a fopen-nel meg tudsz nyitni egy fájlt, mintha csak lokálban tennéd.

A kérdés az, hogy ez az URL, amit kapsz máshonnan él-e vajon? Próbáltad a kapott URL-t egy másik böngészőbe illesztve letölteni? A legtöbb fájl-tárhely szolgáltatás foggal-körömmel küzd azellen, hogy automatizált eszközökkel letölthessék a fájljaikat (ahogy ez logikus is). Tehát nem kizárt, hogy a letöltő PHP szkriptedben egy minimális böngészőt kell emulálnod (főként a szervertől kapott cookie-k lezelését), meg egykét másik url-t is le kell kérjél az adott fájl előtt.
8

Igen

pasztiz · 2008. Jan. 24. (Cs), 16.40
Igen próbáltam. Fentebb le is írtam, hogy most is működik a dolog, csak több lépésben.
9

URL

pasztiz · 2008. Jan. 24. (Cs), 16.42
És, hogy tudok URL-t lekérni?
10

fopen

vbence · 2008. Jan. 24. (Cs), 16.45
Írtam (bár elgépelve).. a fopen tud url-t megnyitni fájlként.

$f = fopen ($url);
...
fclose ($f);
11

time out

pasztiz · 2008. Jan. 24. (Cs), 16.49
Ez nem működik. Ezt próbáltam legelőször.
Fatal error: Maximum execution time of 30 seconds exceeded in ...
12

Maximum execution time of 30 seconds exceeded

vbence · 2008. Jan. 24. (Cs), 16.50
Hát akkor értelemszerűen nem EZ nem működik, hanem a fájl letöltése túl sok ideig tart. Próbáld megemelnia limitet ini_set -tel (vagy htaccessel). Persze csak ha a tárhelyed engedi.
13

time out

pasztiz · 2008. Jan. 24. (Cs), 17.03
Böngészőböl a fájl 1-2 mp alatt lejön.
Most felvettem 120mp-re (ini_set("max_execution_time","120")): failed to open stream: A kapcsolódási kísérlet nem sikerült, mert a kapcsolódó partner nem válaszolt a megadott időn belül, vagy a létrehozott kapcsolatban hiba történt, mert a kapcsolódó partner nem volt képes válaszolni.
14

cookie?

Poetro · 2008. Jan. 24. (Cs), 17.22
Lehet, hogy csak cookie kell az illető oldalnak, ahonnan letöltesz. Próbáld ki, hogy a böngésződben letiltod a cookiekat, és akkor működik-e a letöltés, illetve figyeld a HTTP fejléceket, hátha elárul valamit az illető szerverrről.
16

fopen helyett curl

vbence · 2008. Jan. 25. (P), 01.36
Alternatívaként kipróbálhatod a curl modul lehetőségeit. Hátha az jobban tetszik a szervernek.