Se agrego a la clase el control AddUploadBase64( <idControl> )
Con este control se pueden subir archivos a una carpeta del servidor definida por el usuario, o tambien
se puede subir un archivo PDF/PNG/JPG/BMP/JPEG en formato Base64 e incluirla en un tabla de MYSQL.
Codigo del ejemplo :
Código: Seleccionar todo
<?php
include( "config.php" );
include( TWEB_PATH . 'core.php' );
include( TWEB_PATH . 'core.pdfview.php' );
include( TWEB_PATH . 'core.modal.php' );
$oWeb = new TWeb('TEST TDATATABLE');
$oWeb->lAwesome = true;
$oWeb->SetIcon( IMAGE_PATH . 'tweb.png' );
$oWeb->Activate();
$oWnd = new TWindow( 'main', 10, '10%', '80%', '80%', 'white' );
$oBar = new TBar( $oWnd );
$oBar->SetBackColor("#c8e3f8");
$oBtn = $oBar->AddButton( 'bload', 'base64', 'DoRead()' , IMAGE_PATH . 'cloud-upload-16.png', 'Upload Base64' );
$oBtn->nWidth = 60;
$oBtn->SetColor("white", "#007bff");
$oBtn->SetColorhover("white", "#cbc8df");
$oBtn = $oBar->AddButton( 'bfile', 'File', 'DoFile()', null, 'Upload File' );
$oBtn->nWidth = 60;
$oBtn->cIcon = "fa fa-upload";
$oBtn->SetColor("white", "#007bff");
$oBtn->SetColorhover("white", "#cbc8df");
$oBtn = $oBar->AddButton( 'bPrint', 'Imprimir', 'DoPrint()' , IMAGE_PATH . 'pdf-black-16.png', 'Imprimir' );
$oBtn->nWidth = 60;
$oBtn->SetColor("white", "#007bff");
$oBtn->SetColorhover("white", "#cbc8df");
$oBtn = $oBar->AddButton( 'bSalir', 'Salir', 'DoExit()' , IMAGE_PATH . 'logout-black-16.png', 'Salir' );
$oBtn->nWidth = 60;
$oBtn->SetColor("white", "#fa5959");
$oBtn->SetColorhover("white", "#cbc8df");
$oTable = new TDataTable( $oWnd, 'myTable' );
$oTable->AddCol( 'codigo', 'Codigo' );
$oTable->AddCol( 'descripcion', 'Descripcion' );
$oTable->AddCol( 'tipo', 'Tipo' );
$oTable->PageLength( 12 );
$oTable->Paging( true );
$oTable->ScrollY( "280px" );
$oTable->ScrollX( true );
$oTable->BtnsExportHide();
PdfView(); // Dialogo para PDF View
DlgUpload(); // Dialogo para subida de archivos
DlgImage(); // Dialogo para mostrar el archivo subido
$oWnd->Activate();
$oWeb->End();
//--------------------------------------
function PdfView() {
$oFrame = new TPDFView( 'xframe', 'TEST TXFRAME TWEB PLUS' );
$oFrame->nWidth = 900;
$oFrame->textBtn = 'Salir';
$oFrame->Activate();
}
//--------------------------------------
function DlgUpload() {
$oModal = new TModal( 'myModal', 'Subir Archivo', "white", "#A2A0A0" );
$oModal->AddInput( 'Codigo', 'idCodi', TYPE_TEXT, LBL_LEFT, "codigo documento" );
$oModal->AddInput( 'Descripcion', 'idName', TYPE_TEXT, LBL_LEFT, "descripcion documento" );
$oModal->AddUploadBase64( 'myFile' );
$oModal->nWidth = 600;
$oModal->AddButton( 'bsave', 'grabar', null, 'white', '#1972ee' );
$oModal->AddButton( '', 'Salir', null, 'white', '#f25c5c', BTN_CANCEL );
$oModal->Activate();
}
//--------------------------------------
function DlgImage() {
$oModal = new TModal( 'myImage', 'Upload File Image', "white", "#A2A0A0" );
$oModal->AddImage( "idimg" );
$oModal->AddButton( '', 'Salir', null, 'white', '#f25c5c', BTN_CANCEL );
$oModal->Activate();
}
?>
<!--- CODIGO Javascript TEST-XFRAME2.PHP -->
<script>
const _PDF = "application/pdf";
var oTable;
var oFrame;
var oModal;
var oImage;
var fileBase64 = null;
$(function() {
var oCtrl = new TControl();
oTable = oCtrl.GetControl( "myTable" );
oFrame = oCtrl.GetControl( "xframe" );
oModal = new TModal( 'myModal' );
oImage = new TModal( 'myImage' );
var param = {};
param.action = "load";
MsgServer( "./srv_xframe.php", doLoad, param, "Recibiendo Datos" );
function doLoad( respond, msg ) {
if ( respond.result ) {
var oCtrl = new TControl();
var oGrid = oCtrl.GetControl( 'myTable' );
oGrid.SetData( respond.data );
MsgNotify( msg, 'success' );
} else {
MsgNotify("No se encontraron Registros", "error");
}
}
});
//------------------------------------------------
function DoRead() {
oModal.inifocus( "idCodi" );
oModal.btnfunction( "bsave", "uploadBase64" );
oModal.ontitle("Download Base64");
oModal.show();
}
function uploadBase64() {
if ( oModal.isUploadBase64() ) {
/*
if ( oModal.getUploadType() != _PDF ) {
MsgNotify("El archivo debe ser de tipo PDF", "error");
return;
}
*/
var codigo = oModal.get("idCodi");
var nombre = oModal.get("idName");
var base64 = oModal.getUploadBase64();
var tipo = oModal.getUploadType();
if ( empty(codigo) || empty(nombre) ) {
MsgNotify("faltan datos por ingresar", "error");
return;
} else {
var params = {};
params.action = "save";
params.codigo = codigo;
params.nombre = nombre;
params.base64 = base64;
params.tipo = tipo;
MsgServer( "./srv_xframe.php", doSave, params, [ params, "Registro agregado" ] );
function doSave( data, args ) {
if ( data.result ) {
oTable.InsertRow( { codigo : args[0].codigo, descripcion : args[0].nombre, tipo : args[0].tipo } );
oModal.hide();
MsgNotify(args[1], "success");
} else {
MsgNotify("Error en el insert", "error");
}
}
}
} else {
MsgNotify("Tipo de Archivo debe ser BMP/JPG/JPEG/PNG", "error");
}
}
//------------------------------------------------
function DoFile() {
oModal.disabled( "idCodi" );
oModal.disabled( "idName" );
oModal.inifocus( "myFile" );
oModal.btnfunction( "bsave", "UploadFile" );
oModal.ontitle("Download File");
oModal.show();
}
function UploadFile() {
var file = oModal.getUploadFile();
if ( file ) {
var form_data = new FormData();
form_data.append('file', file);
form_data.append('action', "upload");
form_data.append('path', "./download");
oModal.sendFileServer( "./srv_xframe.php", validUpload, form_data );
function validUpload( data ) {
if ( data.result ) {
MsgNotify(data.msg, "success");
fileBase64 = oModal.getUploadBase64(); // asigna a var global el string base64
} else {
MsgNotify(data.msg, "error");
}
oModal.hide();
showImage(); // muestra la imagen
}
} else {
MsgNotify("Debe seleccionar un archivo", "error");
}
}
//------------------------------------------------
function showImage( cType ) {
if ( cType ) {
oImage.setUploadFile( cType );
}
oImage.setImageBase64( "idimg", fileBase64 );
oImage.show();
}
//------------------------------------------------
function DoPrint() {
var oCtrl = new TControl();
var oTable = oCtrl.GetControl( 'myTable' );
var data = oTable.GetRow();
if ( data ) {
var param = {};
param.action = 'pdf';
param.codigo = data.codigo;
if ( data.tipo == _PDF ) {
oFrame.loadFromBase64( "./srv_xframe.php", param );
oFrame.show();
} else {
MsgServer( './srv_xframe.php', doShowImage, param );
function doShowImage( data ) {
fileBase64 = data;
showImage( data.tipo );
}
}
} else {
JMsgInfo("Seleccione una fila");
}
}
//------------------------------------------------
function DoExit() {
JMsgYesNo("Salir del Test ?", doExit, "regresando al foro");
function doExit( msg ) {
MsgNotify(msg, "success");
location.href = 'http://avcsistemas.com/foro';
}
}
</script>