Newsgroup: it.comp.www.php
Titolo: Ideuzza malsana.. ftp e php

Ciao a tutti i guru del ng,
mi stava venendo un'idea malsana: se io avessi un server ftp in una rete
privata, e mi interessasse prelevare qualche file da questo server da un
client all'esterno della rete privata.
Secondo voi, tramite uno script php su un server comune alle 2 reti,
riuscirei a fare quanto detto?
Ossia, il client accede al server web, su cui lo script php accede al server
ftp interno.
E fin qui nessun problema.
Il problema č passare il file direttamente al client, senza copiarlo prima
sul pc intermedio.
Secondo voi?
grazie :)
(spero di essermi spiegato..)

 prima sul pc intermedio.
Non penso sia possibile. Quale e' il problema di salvarlo in locale?
-- 
I am what I am, I do what I can
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Votami! 
http://www.phpclasses.org/vote.html
L'uomo, conscio di sbagliare, persevera.

 Non penso sia possibile. Quale e' il problema di salvarlo in locale?
Beh se dall'esterno devo scaricarmi un file da 1Gb capisco che:
- divento vecchio
- non è detto che il server di mezzo abbia spazio libero...
Sicuro sia impossibile?
Certo si potrebbe usare un buffer (che so, un file temporaneo da un mega.. o
un paio di files temporanei su cui lavorare alternativamente.)
Che ne dici?

 alternativamente.)
Dovresti definire meglio il concetto di "senza copiarlo prima
sul pc intermedio".
Per me significa senza appoggiarsi a file temporanei o cose del genere,
altrimenti le funzioni standard  di PHP sono piu' che sufficienti.
-- 
I am what I am, I do what I can
Cerchi un programmatore PHP/MySQL? 
http://url.repository.biz/go/1Y
Vuoi supportarmi? 
http://url.repository.biz/go/3E


 sufficienti.
Intendo senza dover prima copiare tutto il file sul server intermedio.
Insomma, diciamo che io voglia prelevare un file da 1 Gb
Con la ftpget devo spostare tutto il Gb dal pc con l'ftp al server
intermedio, poi passare il Gb dal server intermedio al client che fa la
richiesta.
Pensavo alla ftp_fget, in questo modo è vero che occuperei comunque 1 Gb sul
server intermedio, ma almeno potrei mandare il file al pc di destinazione
mentre uppo sul server (almeno credo)
Solo che se il primo avesse banda maggiore del server ftp? "finirei" il file
prima che questo fosse uppato.. non credo funzioni.
C'è modo di fare qualcosa senza occupare un Gb intero sul server intermedio?
anche con files temporanei, non è un problema..
Qualche idea?

 intermedio?  anche con files temporanei, non h un problema..
Se devi spostare dei file nell'ordine di Gb implementa una VPN IPSec.
E' sicuramente un investimento migliore.
-- 
I am what I am, I do what I can


 E' sicuramente un investimento migliore.
L'idea era rendere la cosa trasparente all'esterno, insomma come se
dall'esterno si scaricasse un semplice file da web..


:Provate a guardare gli ingredienti del famoso Labello che si usa per
:le labbra screpolate: Butirrospermum Parkii (sperma di maiale).

 Leonardo
Sempre il migliore :)

uhm... ?_?
Prova a scrivere due righe di testo in Unix e leggerle sotto Windows,
poi sappimi dire :-(
...potresti essere costretto a usare fopen(..., 'rb'), seguito poi da
fpassthru(), e sperare che il ftp-wrapper capisca quella 'b'.
Leonardo\r\n


 fpassthru(), e sperare che il ftp-wrapper capisca quella 'b'.
Quel readfile che mi hai dato prima mi butta fuori il file come testo nel
browser, basta se gli aggiungo la gestione degli header?
Aggiungendo la gestione degli header, dovrei riuscire a mandare il file in
download no?
Che dici provo?

 readfile(
ftp://user:pass...@example.com/pub/file.txt
);
Ok, idea bocciata.
Con la readfile il server di mezzo di copia prima tutto il file poi lo
spedisce al client.
per files piccoli funziona benone, ma coi grossi.. :(
Ultima idea: fare una fsockopen al server ftp, poi mandare il file con la
fpassthru
Che ne dici?
(cmq con la readfile la gestione degli header non era così incasinata :P)

browser, basta se gli aggiungo la gestione degli header?
Dovrebbe. In questo caso specifico, bisogna che tu ti fidi dell'estensione
ma, se vuoi limitarti a far salvare il file, puoi fare la vigliaccata:
	Header('Content-Type: application/x-binary');
	Header("Content-Disposition: inline; filename=$filename");
Leonardo
-- 
Time's angles, mages tell, conceal a place
incredible, beyond the mundane mind;
night-shrouded and between the seas of space
dread creatures drift in the ageless winds.

Che ne dici?
Prova. Piu' di questo non so che dirti :-)


 Prova. Piu' di questo non so che dirti :-)
http://www.raditha.com/php/ftp/
Pare essere la soluzione..
Certo che poteva anche mettere lo script intero funzionante :)
Non riesco a montarlo, la funziona pasv mi continua a dare errore..