FTP over PHP upload

Si has llegado hasta aquí, asumo que...

  1. has llegado por error, no sabes qué es PHP, ni FTP, ni FTP sobre PHP... y te importa un carajo, lo tuyo es el bádminton y la equitación

  2. estás harto de recorrer internet buscando ejemplos de como hacer un upload en FTP sobre PHP, y sólo has encontrado páginas creadas por gente que sólo sabe copiar/pegar código, sin entender nada, y sin haberlo probado; eso sí, todo plagado de avisos de cookies, de si te quieres suscribir o recibir notificaciones, y de un montón de publicidad irrelevante.

Si éste último es tu caso, bienvenido, aquí tienes un código que sí que funciona!

Ah, y no tengo publicidad, ni avisos de cookies, ni te propongo que te suscribas a nada, ni te autentifiques por medio de Facebook!
Será por eso que tengo cero visitas...


Nombre del archivo: index.php
<!DOCTYPE html> 
<html>
<head>
       <meta charset="utf-8">
       <title>FTP over PHP upload</title>
       <style>body { font-family: Verdana; font-size: 12px; }</style>
</head>
<body>
<h1>FTP over PHP upload</h1>

<?php

if(isset($_POST['server'])) {
       $server = rtrim($_POST['server']);
       $username = rtrim($_POST['username']);
       $pwd = rtrim($_POST['pwd']);
       $fileName = $_FILES['file']['name'];
       $tmpName = $_FILES['file']['tmp_name'];
       $dest = rtrim($_POST['dest']);
       $enc = $_POST['enc'];

       if (! function_exists('ftp_connect')) {
              die("Sorry, your PHP doesn't seem to support FTP");
       }

       if ($enc == "plain") {
              $conn = ftp_connect($server) or die("Unable to connect to host $server");
              echo "Connected by plain text!<br>\n";
       }
       else if ($enc == "tls") {
              $conn = ftp_ssl_connect($server) or die("Unable to connect to host $server");
              echo "Connected by TLS encryption!<br>\n";
       }
       else {
              die("You have to select an encryption protocol!");
       }


       ftp_login($conn, $username, $pwd) or die("Authorization Failed");
       echo "Authorization OK!<br>\n";

       if(! $fileName) {
              echo "Please select a file\n";
       } else {
              ftp_put($conn, $dest . '/' . $fileName, $tmpName, FTP_BINARY) or die("Unable to upload file");
              echo "File successfully uploaded!\n";
       }

       ftp_close($conn);

       echo "<p><a href='index.php'>back</a></p>\n";
       die("</body>\n</html>");
}



$actual_dir = getcwd();
$user = get_current_user();

$dest = str_replace("/home/$user", "", $actual_dir);
$dest = $dest . "/upload";

if (! is_dir("upload")) {
       mkdir("upload", 0755);
}

?>

<form name="upload" method="post" action="index.php" enctype="multipart/form-data">
       <p>Server: <input type="text" name="server" value="localhost"></p>

       <p>Encryption: <input type="radio" name="enc" value="tls" checked> TLS
       <span style="margin-left: 24px;"><input type="radio" name="enc" value="plain"> Text plain</span></p>

       <p>User: <input type="text" name="username" value=""></p>
       <p>Password: <input type="password" name="pwd" value=""></p>
       <p>Dest dir: <input type="text" name="dest" value="<?php print "$dest"; ?>" size="65"></p>
       <p>File to upload: <input type="file" name="file"></p>
       <p><input type="reset" value="Reset"> <input type="submit" value="Upload"></p>
</form>

</body>
</html>

Si te ha servido de algo el código, o propones alguna mejora, por favor deja un comentario
(no te voy a pedir el email, ni tendrás que validar el email, ni usuario, ni contraseña, ni cookie, ni seguimiento de sesión, ni te voy a geolocalizar, ni te tendrás que suscribir a nada...)
(por dios, en qué hemos convertido internet...)

 

 

add comment

 

all blogs        help  
 
© 2023, Carles Bataller - Disseny web cucurella.net