El siguiente es el código para cargar y descargar archivos usando la función ftp de PHP.
La interfaz será así:
La transferencia de archivos es cara. Por lo tanto, usar ftp para transferir archivos y usar el servicio web para almacenar información relacionada puede no ser la forma más eficiente.
El siguiente es el código completo. Por motivos de edición, separo el código php y html, pero debería ponerlos en el mismo archivo, que debería funcionar correctamente.
if($_POST && $_POST['action'] == 'upload'){ if($_POST['file_title'] && $_POST['define_type_id'] && $_POST['connection_type_id']){ $ftp_server = $_POST['host']; $ftp_user = $_POST['user']; $ftp_pass = $_POST['pass']; // set up a connection or die $conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server"); //echo $conn_id; // try to login $login_result = ftp_login($conn_id, $ftp_user, $ftp_pass); $file_id = md5($_FILES['file']['name'].time()); $str = $_FILES['file']['name']; $pos = strrpos($str, '.'); $len = strlen($str); $real_name = substr($str, 0, $pos); $file_ext = substr($str, $pos+1, $len); if (ftp_put($conn_id, $file_id.".".$file_ext, $_FILES['file']['tmp_name'], FTP_BINARY)) { //echo "successfully uploaded {$_FILES['file']['name']}n"; $client = new SoapClient ( "http://localhost:8080/FileManagement/FileManagementService?WSDL" ); $file_title = $_POST['file_title']; $connection_id = $_POST['connection_type_id']; $file_type = $_POST['define_type_id']; $result = $client->Upload(array("file_id" => $file_id, "file_title"=> $file_title, "connection_id" => $connection_id, "define_type_id" => $file_type, "real_name" => $real_name, "file_ext" => $file_ext )); echo "New file uploaded!"; } else { echo "There was a problem while uploadingn"; } ftp_close($conn_id); }else{ echo "please input every field"; } }elseif ($_GET && $_GET['action'] == 'delete'){ echo "deleting"; $client->DeleteFile(array("file_id" => $_GET['file_id'])); } |
A continuación se muestra el código html:
<h2>Please provide the following information:</h2> <form enctype="multipart/form-data" method="post"> <input name="MAX_FILE_SIZE" type="hidden" value="5000000" />Host <input name="host" type="text" /> Username <input name="user" type="text" /> Password <input name="pass" type="password" /> Destination directory <input name="dir" type="text" /> File <input name="file" type="file" /> <input name="submit" type="submit" value="Upload File" /> </form> |
Proporcione la siguiente información: