[eside-ghost] formulario php para subir archivos via FTP
altern
altern2 en gmail.com
Mar Mar 25 21:06:57 CET 2008
Javier Allende Astigarraga(e)k dio:
> $upload = ftp_put($conn_id, $destination_file, $file, FTP_BINARY);
>
> En esta cadena comprueba que los campos tengan valores aunque $conn_id
> si que tiene valores
>
> $destination_file y $file
>
> $myFile = $_FILES['txt_file'];
> $file = $myFile['tmp_name']; /
> $myFileName = basename($_POST['txt_fileName']);
> Lo unico no tengo muy claro xq el $_FILES['txt_file'] y el
> $_POST['txt_fileName'] son distintos los indices del array.
esto es pq el form es asi
<input name="txt_file" type="file" id="txt_file" tabindex="1" size="35"
onChange="txt_fileName.value=txt_file.value" />
<input name="txt_fileName" type="hidden" id="txt_fileName" tabindex="99"
size="1" />
pero como no controlo mucho ando corta y pega asi que puede haber alguna
liada que se me haya escapado.
> Aunque es un código ya hecho
bueno con tu codigo por lo menos he llegado un poco mas lejos, he hecho
un echo($error) y me da 9, he buscado y significa
CURLE_REMOTE_ACCESS_DENIED (9)
We were denied access to the resource given in the URL. For FTP, this
occurs while trying to change to the remote directory.
asi que parece que el error es que el servidor no me deja hacerlo. Los
permisos del subdirectorio donde quiero subir los archivos estan bien.
> 1.
> <form <http://december.com/html/4/element/form.html> action=""
> method="post" enctype="multipart/form-data">
> 2.
> Seleccionar archivo:
> 3.
> <input <http://december.com/html/4/element/input.html> type="file"
> name="archivo" />
> 4.
> <input <http://december.com/html/4/element/input.html>
> type="submit" name="enviar" value="Upload" />
> 5.
> <input <http://december.com/html/4/element/input.html>
> type="hidden" name="action" value="upload" />
> 6.
> </form>
> 7.
>
>
> 1.
> $rpta = "";
> 2.
> if ($_POST["action"] == "upload") {
> 3.
> $tmpfile = $_FILES['archivo']['tmp_name'];
> 4.
> $tmpname = $_FILES['archivo']['name'];
> 5.
>
> 6.
> $ftpuser = "usuario";
> 7.
> $ftppass = "password";
> 8.
> $ftppath = "ftp.dominio.com/path/ <http://ftp.dominio.com/path/>";
> 9.
> $ftpurl = "ftp://".$ftpuser.":".$ftppass."@".$ftppath;
> 10.
>
> 11.
> if ($tmpname != "") {
> 12.
> $fp = fopen <http://www.php.net/fopen>($tmpfile, 'r');
> 13.
> $ch = curl_init();
> 14.
> curl_setopt($ch, CURLOPT_URL, $ftpurl.$tmpname);
> 15.
> curl_setopt($ch, CURLOPT_UPLOAD, 1);
> 16.
> curl_setopt($ch, CURLOPT_INFILE, $fp);
> 17.
> curl_setopt($ch, CURLOPT_INFILESIZE, filesize
> <http://www.php.net/filesize>($tmpfile));
> 18.
> curl_exec($ch);
> 19.
> $error = curl_errno($ch);
> 20.
> curl_close ($ch);
> 21.
> if ($error == 0) {
> 22.
> $rpta = 'Archivo subido correctamente.';
> 23.
> } else {
> 24.
> $rpta = 'Error al subir el archivo.';
> 25.
> }
> 26.
> } else {
> 27.
> $rpta = 'Seleccionar un archivo.';
> 28.
> }
> 29.
> }
>
>
>
>
> El día 25/03/08, *halls* <frikihalls en gmail.com
> <mailto:frikihalls en gmail.com>> escribió:
>
> wop!
>
> yo no te voy a resolver el problema porque lo cierto es que no he
> utilizado nunca cosas de FTP con php, pero veo que la variable
> $conn_id la estas viendo con un simple echo, y con eso no ves nada.
> Te recomiendo que le eches un vistazo a la variable utilizando
> print_r, que te pondra todo mas comodo de ver.
Más información sobre la lista de distribución eside-ghost