Comunidad de diseño web y desarrollo en internet online

SUBIR ARCHIVOS A UN SERVIDOR LINUX

Citar            
MensajeEscrito el 15 Jul 2008 09:55 pm
Hola a todos, tengo un problema al subir un archivo al servidor, lo estoy intentando hacer por FTP pues no conozco otra forma...
el codigo del formulario es el siguiente:
<?php
echo "<center>";
echo"<h3>SELECCIONE EL ARCHIVO</h3>";
echo"<FORM ENCTYPE=multipart/form-data ACTION=subir.php METHOD=post>";
echo"<input name='action' type='hidden' value='upload' />";
echo"<INPUT type='hidden' name='lim_tamano' value='1000'/>";
echo"<br /><br /><INPUT name='archivo' type='file' size='100'/>";
echo"<br /><br /><br /><br /><INPUT type='submit' name='enviar' value='Aceptar'/>";
echo"</FORM>";
echo "</center>";
?>

y el codigo php es el siguiente
$cid = ftp_connect("www.itselgrullo.edu.mx");
$resultado = ftp_login($cid, "itselgrullo","contraseña");
if ((!$cid) || (!$resultado))
{ echo "Fallo en la conexion"; }
else
{echo "Conectado."; }

ftp_pasv ($cid, true);
$local = $_FILES["archivo"]["name"];
$remoto = $_FILES["archivo"]["tmp_name"];
$tama = $_FILES["archivo"]["size"];
$ruta = "/httpdocs/" . $local;
if (is_uploaded_file($remoto))
{
echo "subiendo el archivo...<br />";
move_uploaded_file ( $_FILES [ 'archivo' ][ 'tmp_name' ], $destino . '/' . $_FILES [ 'file' ][ 'name' ]);
if(copy($remoto, $ruta)) echo "ya la hiciste";
else echo "no se pudo";
}
else
{echo "no se pudo subir el archivo";}
ftp_close($cid);

al parecer hace bien la conexion pero en la funcion copy hace lo deseado... si alguien me puede ayudar se los agradecere mucho...

Por SML_BC

6 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 15 Jul 2008 11:37 pm

Por El Oso Amoroso

Claber

1780 de clabLevel

6 tutoriales

 

Madrid, España, Europa, Eurasia, La Tierra, Sist.Solar, Vía Láctea, UNIVERSO

firefox
Citar            
MensajeEscrito el 16 Jul 2008 02:13 am
el codigo del formulario es el siguiente:

Código :

echo"<FORM ENCTYPE=multipart/form-data ACTION=subir.php METHOD=post>";
echo"<INPUT type='hidden' name='lim_tamano' value='1000'/>";
echo"<INPUT name='archivo' type='file' size='100'/>";
echo"<INPUT type='submit' name='enviar' value='Aceptar'/>";
echo"</FORM>";


y el codigo php es el siguiente

Código :

$cid = ftp_connect("www.itselgrullo.edu.mx");
$resultado = ftp_login($cid, "usuario","contraseña");
ftp_pasv ($cid, true);
$local = $_FILES["archivo"]["name"];
$remoto = $_FILES["archivo"]["tmp_name"];
$ruta = "/httpdocs/" . $local;
is_uploaded_file($remoto);
[b]copy($remoto, $ruta);[/b]
ftp_close($cid);


El servidor con el que estoy trabajando es LINUX, no se si tenga que hacer algo diferente...

Por SML_BC

6 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 16 Jul 2008 04:06 am
Al momento que el archivo es cargado por medio de el formulario este archivo ya se encuentra subido en tu servidor, así que no es necesario que muevas el archivo mediante ftp, basta con que uses:

Código :

move_uploaded_file( $remoto, $ruta);


puedes encontrar más información aquí

Por Odin

Claber

639 de clabLevel

2 tutoriales

Genero:Masculino   Premio_Secretos

El valle de las hamacas

firefox
Citar            
MensajeEscrito el 16 Jul 2008 05:15 pm
les muestro el script que uso yo, utiliza una funcion FtpCopyFile() que sirve para evadir el SAFE_MODE de php:

Código :

if (is_uploaded_file($HTTP_POST_FILES['url']['tmp_name'])) {
       FtpCopyFile($_FILES['url']['tmp_name'], $_FILES['url']['name'], $FOTODIR . $_POST[txtAlbum]);
      echo "<br>Archivo copiado con �xito <a href='/flog/index.php'>Volver</a><br>";
} else echo "Posible ataque de subida de archivo. Archivo: " . $_FILES['url']['name'];


y la funcion FtpCopyFile():

Código :

function FtpCopyFile($fileorigen,$filedestino,$rutadestino)
{
$server='servidor'; // definimos el servidor donde esta nuestra web
$connection = ftp_connect($server); // hacemos la conexi�n
// login to ftp server
$user = "usuario"; //definimos el usuario
$pass = "pass"; // definimos el password
// realizamos el login al ftp
$result = ftp_login($connection, $user, $pass);
// Verificamos si la conexi�n ha sido exitosa
if ((!$connection) || (!$result)) {
return false;
exit();
}
else // si la conexi�n es exitosa
{
// Nos posicionamos dentro del directorio donde queremos copiar el fichero
ftp_chdir($connection, $rutadestino);
// realizamos la copia
ftp_put($connection, $filedestino, $fileorigen, FTP_BINARY);
ftp_close($connection); // cerramos la conexi�n
}
}


saludos!

Por joarobles

753 de clabLevel

8 tutoriales

 

Córdoba - Argentina

firefox
Citar            
MensajeEscrito el 19 Jul 2008 02:41 am
Hola muchas gracias por la ayuda, probe con la funcion y no la pude hacer funcionar, obviamente cambie los datos a los de mi dominio y no marca ningun error pero el archivo no se coloca donde deberia...

Hay algo en lo que tengo duda, en la ruta destino le puedo concatenar el nombre del archivo que quedaria guardado o que es lo que se le agrega?..

yo lo hago de la siguiente manera:

Código :

$remoto = $_FILES["archivo"]["tmp_name"];
$ruta = realpath('./carpeta_de_archivos_subidos/');
FtpCopyFile($_FILES['archivo']['tmp_name'], $_FILES['archivo']['name'], $ruta);
y otro detalle, lei algunos manuales y no encontre una diferencia entre FTP_ASCII y FTP_BINARI, cual es la diferencia?

Por SML_BC

6 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 19 Jul 2008 05:10 pm
por lo que pude probar, la funcion anda con la ruta de archivo completa, es decir, en local c:\carpeta\archivo.ext (por ejemplo), y en mi servidor no local tengo que poner la URL relativa a la carpeta raiz de mi usuario FTP... no funciona la URL relativa al documento, o al sitio... puede probar con getcwd(); para ver por donde andas... saludos!!!

Por joarobles

753 de clabLevel

8 tutoriales

 

Córdoba - Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.