
utilizar variable $_GET para nombrar archivo
Publicado por Hugo (37 intervenciones) el 10/01/2022 04:28:13
Estimados, buenas noches.
Estoy intentando llevar una variable a través de $_GET a otra página para poder concatenarla con el nombre de un documento subido por un cliente, es decir, a través de la misma llevo el id de una solicitud y cuando el cliente adjunta el comprobante, éste debería guardarse con el id y el nombre del documento que subió, por ejemplo: 176comprobante.pdf.
El problema es que no lo logro y no me doy cuenta que es lo que está mal, ya que si imprimo la variable me muestra el id de solicitud.
Si alguien me pudiera ayudar le estaría muy agradecido.
Adjunto el código:
<html>
<head>
<title>Intranet Universal SPS</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<link rel="stylesheet" type="text/css" href="../Cabecera/cabecera.css">
<link rel="stylesheet" type="text/css" href="../Login/iniciar_session.css">
<link rel="stylesheet" type="text/css" href="../Avatar/avatar.css">
<!--link rel="stylesheet" type="text/css" href="../Internacion/internacion2.css"-->
<!--link rel="stylesheet" type="text/css" href="../Formato_Form/formularios.css"-->
<link rel="stylesheet" type="text/css" href="comprobantes.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Kaisei+HarunoUmi:wght@500&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/limonte-sweetalert2/6.11.0/sweetalert2.css"/>
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/limonte-sweetalert2/6.11.0/sweetalert2.js"></script>
</head>
<body>
<?php
include ("../Conexion/conexion.php");
?>
<div id="Logo">
<img src= "../logo.jpg" class="soc"/>
</div>
<div id="Cabecera">
<?php
require ("../Login/iniciar_session.php");
?>
</div>
<?php
$dato=$_GET['idSolic'];
$formatos = array('.jpg', '.png', '.pdf');
$directorio = 'Comprobantes';
if (isset($_POST['ingresar'])){
$nombreArchivo = $dato.$_FILES['archivo']['name'];
$nombreTmpArchivo = $_FILES['archivo']['tmp_name'];
$ext= substr($nombreArchivo, strrpos($nombreArchivo, '.'));
if (in_array($ext, $formatos)){
if (move_uploaded_file($nombreTmpArchivo, "$directorio/$nombreArchivo")){
echo "Se subió el archivo $nombreArchivo exitosamente";
}else{
echo 'Ocurrió un error subiendo el archivo, valida los permisos de la carpeta "archivos"';
}
}else{
echo 'Aquí va el mensaje que quieres mostrar cuando un usuario suba un archivo con una extensión diferente';
}
}
?>
<?php
if ($dir = opendir($directorio)){
while ($archivo = readdir($dir)) {
if ($archivo != '.' && $archivo != '..'){
//este div es para darle caché y que se vea bien en todos los dispositivos. son clases del nuevo bootstrap -> framewrok css
}
}
}
?>
<div id="Contenido">
<img src= "../HospitalItaliano.jpg" class="fondo">
</div>
<div id="cont-form">
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post" class="form" enctype="multipart/form-data">
<div class="formulario">
<h2 class="titulo">Adjuntar comprobantes</h2><br>
<div class="archivos" >
<input type="file" class="archivo" id="archvio" aria-describedby="fileHelp" name="archivo">
<small id="fileHelp" class="form-text text-muted">Archivos permitidos (.jpg .png .pdf)</small>
</div>
<br>
<button type="submit" name="ingresar" class="ingresar">Subir Archivo</button>
</div><br>
</form>
</div>
</body>
</html>
Estoy intentando llevar una variable a través de $_GET a otra página para poder concatenarla con el nombre de un documento subido por un cliente, es decir, a través de la misma llevo el id de una solicitud y cuando el cliente adjunta el comprobante, éste debería guardarse con el id y el nombre del documento que subió, por ejemplo: 176comprobante.pdf.
El problema es que no lo logro y no me doy cuenta que es lo que está mal, ya que si imprimo la variable me muestra el id de solicitud.
Si alguien me pudiera ayudar le estaría muy agradecido.
Adjunto el código:
<html>
<head>
<title>Intranet Universal SPS</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<link rel="stylesheet" type="text/css" href="../Cabecera/cabecera.css">
<link rel="stylesheet" type="text/css" href="../Login/iniciar_session.css">
<link rel="stylesheet" type="text/css" href="../Avatar/avatar.css">
<!--link rel="stylesheet" type="text/css" href="../Internacion/internacion2.css"-->
<!--link rel="stylesheet" type="text/css" href="../Formato_Form/formularios.css"-->
<link rel="stylesheet" type="text/css" href="comprobantes.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Kaisei+HarunoUmi:wght@500&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/limonte-sweetalert2/6.11.0/sweetalert2.css"/>
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/limonte-sweetalert2/6.11.0/sweetalert2.js"></script>
</head>
<body>
<?php
include ("../Conexion/conexion.php");
?>
<div id="Logo">
<img src= "../logo.jpg" class="soc"/>
</div>
<div id="Cabecera">
<?php
require ("../Login/iniciar_session.php");
?>
</div>
<?php
$dato=$_GET['idSolic'];
$formatos = array('.jpg', '.png', '.pdf');
$directorio = 'Comprobantes';
if (isset($_POST['ingresar'])){
$nombreArchivo = $dato.$_FILES['archivo']['name'];
$nombreTmpArchivo = $_FILES['archivo']['tmp_name'];
$ext= substr($nombreArchivo, strrpos($nombreArchivo, '.'));
if (in_array($ext, $formatos)){
if (move_uploaded_file($nombreTmpArchivo, "$directorio/$nombreArchivo")){
echo "Se subió el archivo $nombreArchivo exitosamente";
}else{
echo 'Ocurrió un error subiendo el archivo, valida los permisos de la carpeta "archivos"';
}
}else{
echo 'Aquí va el mensaje que quieres mostrar cuando un usuario suba un archivo con una extensión diferente';
}
}
?>
<?php
if ($dir = opendir($directorio)){
while ($archivo = readdir($dir)) {
if ($archivo != '.' && $archivo != '..'){
//este div es para darle caché y que se vea bien en todos los dispositivos. son clases del nuevo bootstrap -> framewrok css
}
}
}
?>
<div id="Contenido">
<img src= "../HospitalItaliano.jpg" class="fondo">
</div>
<div id="cont-form">
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post" class="form" enctype="multipart/form-data">
<div class="formulario">
<h2 class="titulo">Adjuntar comprobantes</h2><br>
<div class="archivos" >
<input type="file" class="archivo" id="archvio" aria-describedby="fileHelp" name="archivo">
<small id="fileHelp" class="form-text text-muted">Archivos permitidos (.jpg .png .pdf)</small>
</div>
<br>
<button type="submit" name="ingresar" class="ingresar">Subir Archivo</button>
</div><br>
</form>
</div>
</body>
</html>
Valora esta pregunta


0