For Intranet purposes I found I preferred to move my file via ftp functions to match the session user's ftp account and put the file in a holding bay so I knew who it was from.
The FTP wrapper method will NOT do this if your ftp server does NOT support passive mode.
eg. an ftp server behind NAT/routing
ftp://
ftps://
ftp:// -- ftps:// — Acceso a URLs por FTP(s)
Descripción
Permite tanto lectura de ficheros existentes como la creación de nuevos ficheros vía FTP. La conexión fallará si el servidor no soporta FTP en modo pasivo.
Se puede tanto leer como escribir ficheros, pero no las dos cosas simultáneamente. Si el fichero remoto ya existiera en el servidor ftp, y se quisiera abrir en modo escritura sin especificar la opción de contexto overwrite, también fallará la conexión. Si fuera necesario sobrescribir un fichero ya existente en ftp, se tendrá que especificar la opción de contexto overwrite antes de abrir el fichero para su escritura. Alternativamente, puede usarse la extensión FTP.
Si se ha establecido la directiva from en php.ini, se enviará como contraseña para conexiones de FTP anónimo.
Opciones
- ftp://ejemplo.com/pub/fichero.txt
- ftp://usuario:contraseña@example.com/pub/fichero.txt
- ftps://ejemplo.com/pub/fichero.txt
- ftps://usuario:contraseña@ejemplo.com/pub/fichero.txt
Historial de cambios
| Versión | Descripción |
|---|---|
| 4.3.0 | Added ftps://. |
Notas
Nota:
Hay soporte para FTPS desde PHP 4.3.0, siempre y cuando se haya compilado con soporte para openssl.
Si el servidor no soporta SSL, entonces la conexión se restablece a una conexión ftp regular sin encriptación.
Nota: Añadiendo contenido
Desde PHP 5.0.0 se puede añadir contenido a los ficheros mediante la envoltura de URL ftp://. Si se tratara de añadir contenido a un fichero con ftp:// en versiones anteriores, se provocaría un fallo.
Ver también
Document says "Allows read access to existing files and creation of new files via FTP. If the server does not support passive mode ftp, the connection will fail. "
As of version 5.2.5 at least fopen("ftp://...") uses an ACTIVE mode connection by default (it issues an FTP PORT command but not a PASV command). To force passive mode:
$f = fopen("ftp://...");
ftp_pasv($f, true);
old fashioned FTP servers may not be compatible with ftp_connect().
<?
$str ="replace all contenents";
$filew="ftp://gufo:gufo@192.168.1.55:21/jj.php";
$opts = array('ftp' => array('overwrite' => true));
$context = stream_context_create($opts);
$strwri = file_put_contents($filew,$str,LOCK_EX,$context);
?>
