Renombrar archivos en php vía Variable URL

Tengo que realizar un script que realize el upload de un archivo con PHP
Hasta allí todo va bien, ya tengo el script
Lo que necesito es que me envíen el nombre del archivo en una variable url junto a la dirección http:// y ese sea el nombre con el que se guarde el archivo en el servidor.
Ejemplo: http:192.168.54.01/subir/upload.php?x1=archivo4
Y que cuando se guarde el archivo, este se llame "archivo4.txt"
Este es mi código, pero no logro que x1 reciba el valor (y mucho menos que se renombre el archivo)
¿Alguien tiene alguna idea?
$status = "";
$x1 = $_GET['x1'];
if ($_POST["action"] == "upload") {
// obtenemos los datos del archivo
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$archivo = $_FILES["archivo"]['name'];
$prefijo = substr(md5(uniqid(rand())),0,6);
if ($archivo != "") {
// guardamos el archivo a la carpeta temporal
//$destino = "/home/desaest/tmp/".$prefijo."_".$archivo;
$destino = "/home/desaest/tmp/".$x1."_".$archivo;
if (copy($_FILES['archivo']['tmp_name'],$destino)) {
$status = "Archivo subido: ".$x1.";
} else {
$status = "Error al subir el archivo";
}
} else {
$status = "Error al subir archivo";
}
}
?>
l
Respuesta
1
¿Qué version PHP utiliza tu server? Esa seria la primera pregunta :)
El servidor utiliza Sun OS 9 y la versión 5.2.5 de Php
Saludos y gracias por el interés.
Este
 if (POST["action"] == "upload") {
Me huele mal... Podrías hacer un echo $x1, antes de entrar ahí... para ver si realmente lo coge o no.
Gracias Jordi, al hacer el echo x1 antes del upload, si recoge el valor, el problema es la sintaxis de la instrucción para subir el archivo, que es esta:
$destino = "/home/desaest/tmp/".$x1."_".$archivo;
if (copy($_FILES['archivo']['tmp_name'],$destino)) {
No logro que el archivo se guarde en la ruta que le doy, recogiendo el valor de x1 y colocándolo en archivo.
¿Alguna idea?
Saludos.
Le has dado CHMOD 777 a esa carpeta? ¿Para tener permisos de escritura? o/y  a los archivos si los modificas...
Pon en tu .htaccess la instrucccion php_flag display_errors 1
Para que muestre que es lo que esta pasando por pantalla, el error.
En realidad los archivos si se suben al servidor, lo que no ocurre es que se les asigne el nombre que yo introduzco en la variable $x1, necesito que alguien me ayude para saber en que parte del código tengo que declarar esa variable, para que cuando yo elija el archivo a subir, este me la respete.
SaluDos
Es que para hacer uploads, yo recomiendo la función move_uploaded_file:
if (move_uploaded_file(FILES['archivo_usuario']['tmp_name'], $destino )) {
echo "El archivo fue subido con éxito.";
}
Gracias Jordi, hacia falta poner una función Post en una parte del código para que funcionara completamente, la duda que ahora tengo es la siguiente.
¿Cómo subo un archivo .txt de manera ascii con move_uploaded_file?, ya que lo tengo que hacer con php y a la hora de que sube el archivo agrega un al final de cada linea.
Lo que necesito es que el archivo no se altere ¿alguien tiene alguna idea?
Saludos.
No hagas varias preguntas en una sola

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas