Subir al servidor un fichero

Hola de nuevo, quiero hacer una página interna para subir ficheros al servidor
Es decir quiero un formulario donde pueda examinar mi disco duro coger un fichero y mandarlo a una ruta especifica del servidor de internet.
¿Cómo puedo hacerlo? Estoy buscando cgi pero no doy con ninguno.
Yo he usado el totmail pero eso solo vale para enviarlos a un email no al servidor.
La página va a ser interna y le puedo poner las claves sin ningún problema

1 respuesta

Respuesta
1
Es muy fácil subir archivos al servidor donde tienes la página web. Los archivos subidos se copian en la carpeta de temporales del servidor, luego tienes que moverlos a donde tu quieras. Puedes usar el siguiente script:
<html>
<head>
<title> Titulo </title>
</head>
<body>
<?php
if (isset($_FILES['archivo'])){
$destino = "ficheros"; // Pon aqui la ruta donde quieres almacenar el fichero
if(!move_uploaded_file($_FILES['archivo']['tmp_name'], $destino)) {
echo "error al copiar el archivo";
} else {
echo "archivo subido con exito";
}
} else {
?>
<form method="post" name="formulario" enctype="multipart/form-data">
<input name="archivo" type="file">
<input type='submit' name='enviar'>
</form>
</body></html>
<?php
}
?>
En la variable $destino tienes que poner la ruta donde quieres almacenar los archivos subidos. Será una ruta relativa respecto al directorio donde se encuentre subida la página web.
El problema parece ser que no tienes permisos para subir archivos en esa carpeta. Tienes que darle permisos desde un cliente FTP o mediante php.
Si quieres hacerlo mediante php usa el siguiente comando:
chmod("./", 0777)
Si quieres darle permisos a otra carpeta, sustituye "./" por la carpeta que desees.
Me da este error
Warning: move_uploaded_file(./la_jefa.zip): failed to open stream: Permission denied in /home/anetra/public_html/nueva/subirarchivos.php on line 12
Warning: move_uploaded_file(): Unable to move '/tmp/phpsG6OGx' to './la_jefa.zip' in /home/anetra/public_html/nueva/subirarchivos.php on line 12
Error al copiar el archivo
Me da este error
Parse error: parse error, unexpected T_IF in nueva/TMP1jkjo851cm.php on line 10
esta es la linea 10
if(!move_uploaded_file($_FILES['archivo']['tmp_name'], $destino)) {
Ahora al enviar el fichero me da este error
Warning: move_uploaded_file(): open_basedir restriction in effect. File(/nueva/imagenes) is not within the allowed path(s): (/home/anetra:/usr/lib/php:/usr/local/lib/php:/tmp) in public_html/nueva/subirarchivos.php on line 12
error al copiar el archivo
este es el codigo
<?php
if (isset($_FILES['archivo'])){
$destino = "/nueva/imagenes"; // Pon aqui la ruta donde quieres almacenar el fichero
if(!move_uploaded_file($_FILES['archivo']['tmp_name'], $destino)) {
echo "error al copiar el archivo";
} else {
echo "archivo subido con exito";
}
} else {
?>
<form method="post" name="formulario" enctype="multipart/form-data">
<input name="archivo" type="file">
<input type='submit' name='enviar'>
</form>
</body></html>
<?php
}
?>
Lo he probado tal cual está y me funciona bien. Lo único que tienes que hacer es cambiar la variable $destino.
Por ejemplo si pones:
$destino = "./" . basename($_FILES['archivo']['name']);
Te guardara el fichero en el mismo directorio donde esté la página web.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas