Subir un fichero por FTP en PHP

El código que nos muestran es sencillo, se trata de subir un fichero mediante un formulario a un servidor FTP, para lo cual será necesario CURL.

Inicialmente necesitaremos el formulario html:

<form action="ftpupload.php" method="post" enctype="multipart/form-data">
<div>
<label for="upload">Selecciona un fichero</label>
<input name="upload" type="file" />
<input type="submit" name="submit" value="Enviar" />
</div>
</form>

Recordad que es importante que el enctype sea multipart/form-data para que se pueda enviar el fichero al servidor.

Una vez tenemos este formulario, deberemos tener el fichero ftpupload.php el cual deberá ejecutar lo siguiente:

if (isset($_POST['submit'])) {
if (!empty($_FILES['upload']['name'])) {
$ch = curl_init();
$localfile = $_FILES['upload']['tmp_name'];
$fp = fopen($localfile, 'r');
curl_setopt($ch, CURLOPT_URL, 'ftp://usuario:password@ftp.servidor.com/'.$_FILES['upload']['name']);
curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($localfile));
curl_exec ($ch);
$error_no = curl_errno($ch);
curl_close ($ch);
if ($error_no == 0) {
$error = 'Fichero subido correctamente.';
} else {
$error = 'Error al subir el fichero.';
}
} else {
$error = 'Seleccione un fichero.';
}
}

Tutorial: FTP Upload via cURL

Similar Posts