Yo manejo el problema de mostrar los pdf una vez ya estan realizada la carga, renombrardo el archivo y subiendo este un una carperta del servidor.
Debes de tener claros los path de desarrollo y produccion para controlar desde donde debe de mostrar el boton el archivo en forma correcta.
Debes de identificar y hacer un manejo de permisos y niveles de seguridad para evitar que usuarios puedan ver contenido no permitido. (User Security Level)
En el grid coloco un boton de pdf con el evento onClik busco y muestro el archivo que requiere el usuario.
The view file button lets you see the last file uploaded to the server in a php called viewer.
The grid with the pdf button creates the link to show the file that corresponds to each record.
Implemented app code
User security level is an array with the data of the user’s permissions, each document must have a permission level to confront against the user’s permissions and in this way define if the file can see it or not.
Implemented app code
------------- Boton Ver Archivo Redir --------------
// Redirection parameters
$redir_app = 'control_visor'; // Application name
$redir_test = [lastad] != ''; // Redirection test
$redir_target = '_self'; // Target window (_blank, _self, _parent or modal)
$redir_param = array( // Param list, add as many as needed
);
// Redirection
if ($redir_test)
{
sc_redir($redir_app, $redir_param, $redir_target);
}
--------------- Control visor ---------------------------
// onLoad control_visor
{ad_buscar} = [lastad];
if($this->Ini->path_prod == "/scriptcase/prod")
{
$path = "../../../file/doc/up_files/";
$path_ad = "../../../file/doc/uploads/scanner/le/";
}
else
{
$path = "../_lib/file/doc/up_files/";
$path_ad = "../_lib/file/doc/uploads/scanner/le/";
}
$d = date('YmdHis');
$fname = {ad_buscar};
$img = "https://xxx.domino.com/images/sc_menu_pdf2_e.png";
$lx = 'https://xxx.domino.com/test3.php?desc=1&path='.$fname;
$ll = 'https://xxx.domino.com/sv/blank_acceso_denegado/';
$archivo_nuevo = $path . $fname;
$testf = file_exists($archivo_nuevo);
if( ($testf == 1) )
{
$fn = "<iframe src='$archivo_nuevo' width='1000' height='500'> </iframe>";
{visor} = $fn;
}
else
{
$fn = "<iframe src='https://apps.coassist.com.co/test3.php?desc=1&path=".$fname."' width='1000' height='500'> </iframe>";
{visor} = $fn;
}
---------------------------------- form_upload_ad ---------------
// onLoad
if($this->Ini->path_prod == "/scriptcase/prod")
{
$path = "../../../file/doc/up_files/";
$path_ad = "../../../file/doc/uploads/scanner/le/";
}
else
{
$path = "../_lib/file/doc/up_files/";
$path_ad = "../_lib/file/doc/uploads/scanner/le/";
}
$d = date('YmdHis');
{radicado} = $d;
$fname = {ad_file};
$img = "https://xxx.domino.com/images/sc_menu_pdf2_e.png";
$lx = 'https://xxx.domino.com/test3.php?desc=1&path='.$fname;
$ll = 'https://xxx.domino.com/sv/blank_acceso_denegado/';
$archivo_nuevo = $path . {ad_file};
$testf = file_exists($archivo_nuevo);
if( ($testf == 1) )
{
$fn = "<iframe src='$archivo_nuevo' width='1000' height='700'> </iframe>";
{visor} = $fn;
}
else
{
$fn = "<iframe src='https://apps.coassist.com.co/test3.php?desc=1&path=".$fname."' width='1000' height='700'> </iframe>";
{visor} = $fn;
}
-----------------------------------------------
//onValidate
if ( empty({tipo_ad}) )
{
sc_error_message('Error: Debe de seleccionar tipo de archivo digital !');
}
if ( empty({ccnit}) )
{
sc_error_message('Error: Debe de seleccionar cedula o nit relacionado al documento !');
}
if ( empty({ofn}) )
{
sc_error_message('Error: Debe de seleccionar algun archivo a cargar !');
}
$check_sql = "SELECT id_tercero"
. " FROM ticker.terceros"
. " WHERE ccnit = '" . {ccnit} . "'";
sc_lookup(rs, $check_sql);
if (isset({rs[0][0]})) // Row found
{
{id_tercero} = {rs[0][0]};
}
else // No row found
{
sc_error_message('Error: Tercero no esta registrado por favor ingresarlo !');
}
--------------------------------------------------------
// onBeforeInsert
$nombre_actual = {ofn};
$trozos = explode(".", {ofn});
$extension = strtolower(end($trozos));
$str = {ofn};
// $pattern = "/[0-9]{14}_[0-9A-Z]{2}_[0-9a-zA-Z]{20}.[a-zA-Z]{3}/";
$pattern = "/[0-9]{14}_[0-9A-Z]{2}_[0-9a-zA-Z]{20}/";
// echo "Si el vaor es 1 es un nombre valido de AD: ".preg_match($pattern, $str);
if(preg_match($pattern, $str) == 1)
{
$nombre_nuevo = $nombre_actual;
{tipo_ad} = substr($str,15,2);
{radicado} = substr($str,0,14);
{ccnit} = abs(substr($str,18,20));
{ad_file} = $nombre_actual;
{ext} = $extension;
{caracteres} = strlen($nombre_nuevo);
}
else
{
$nombre_nuevo = {radicado} . "_" . {tipo_ad} . "_" . str_pad({ccnit}, 20, "0", STR_PAD_LEFT) . "." . $extension;
{ad_file} = $nombre_nuevo;
{ext} = $extension;
{caracteres} = strlen($nombre_nuevo);
}
-------------------------------------------------------------
// onAfterInsert
// Define si se esta en produccion o desarrollo para fijar el path correcto
if($this->Ini->path_prod == "/scriptcase/prod")
{
$path = "../../../file/doc/up_files/";
$path_ad = "/opt/lampp/htdocs/sv/_lib/file/doc/uploads/scanner/le/";
}
else
{
$path = "../_lib/file/doc/up_files/";
$path_ad = "/opt/lampp/htdocs/sv/_lib/file/doc/uploads/scanner/le/";
}
$archivo_actual = $path.{ofn};
$nombre_actual = {ofn};
$trozos = explode(".", {ofn});
$extension = strtolower(end($trozos));
$str = {ofn};
// $pattern = "/[0-9]{14}_[0-9A-Z]{2}_[0-9a-zA-Z]{20}.[a-zA-Z]{3}/";
$pattern = "/[0-9]{14}_[0-9A-Z]{2}_[0-9a-zA-Z]{20}/";
// echo "Si el vaor es 1 es un nombre valido de AD: ".preg_match($pattern, $str).'<br>';
if(preg_match($pattern, $str) == 1)
{
$nombre_nuevo = $nombre_actual;
$archivo_nuevo = $path . $nombre_actual;
}
else
{
$nombre_nuevo = {radicado} . "_" . {tipo_ad} . "_" . str_pad({ccnit}, 20, "0", STR_PAD_LEFT) . "." . $extension;
$archivo_nuevo = $path . {radicado} . "_" . {tipo_ad} . "_" . str_pad({ccnit}, 20, "0", STR_PAD_LEFT) . "." . $extension;
}
// echo $nombre_nuevo.'<br>';
[lastad] = $nombre_nuevo;
$testf = file_exists($archivo_actual);
if($testf == 1)
if($nombre_actual != $nombre_nuevo)
{
rename($archivo_actual, $archivo_nuevo);
copy($archivo_nuevo, $path_ad . $nombre_nuevo);
sc_exec_sql("UPDATE log_ad SET ad_file = '$nombre_nuevo', ext = '$extension' WHERE id = " . {id} . ";"); // Actualiza nombre de archivo digital
}
else
{
copy($archivo_nuevo, $path_ad . $nombre_nuevo);
}
else
{
sc_alert('Error: Archivio cargado no encontrado en servidor !');
}
$testf = file_exists($archivo_nuevo);
if($testf != 1)
{
sc_exec_sql("DELETE FROM BD_AD.log_ad WHERE id = " . {id} . " AND ad_file = '';");
sc_alert('Error Archivo no fue renombrado correctamente, registro invalido trate de cargar de nuevo el archivo!');
}
else
{
sc_alert('Archivo Digital ' . $nombre_nuevo . ' cargado y creado con exito. Gracias!!');
/*
sleep(10);
// Redirection parameters
$redir_app = 'control_visor'; // Application name
$redir_test = {ad_file} != ''; // Redirection test
$redir_target = '_self'; // Target window (_blank, _self, _parent or modal)
$redir_param = array( // Param list, add as many as needed
);
// Redirection
if ($redir_test)
{
sc_redir($redir_app, $redir_param, $redir_target);
}
*/
}