Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Delphi para la web
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-12-2016
andresenlared andresenlared is offline
Miembro
 
Registrado: Oct 2003
Posts: 146
Poder: 14
andresenlared Va por buen camino
Question Descarga de archivo Datasnap REST

Saludos.

Estoy realizando un proyectico en Datasnap REST con Delphi 10 seattle , y se me ha presentado un problema con un proceso que debo realizar para descargar un archivo pdf. Les cuento, la aplicacion lo que hace es consultar una base de datos, y generar un pdf y lo almacena en la carpeta docs del proyecto, luego debe descargar el pdf.

De lo que he leído, en el webfiledispacher, tiene dos propiedades: webdirectories tiene el item include para cualquier archivo que se guarde, y la parte de exclude para los templates o paginas web.
La otra propiedad webfileextensions, aqui agregue las extensiones pdf.

el codigo que estoy usando javascript es

Código:
   var link = document.createElement("a");
   var rutaPdf = 'docs/';
   var filePdf=document.getElementById("nroPred").value;
   var resultPdf=filePdf.concat('.pdf');
   link.download = filePdf;
   var tmp = rutaPdf.concat(resultPdf);
   alert(tmp);
   link.href = tmp;
   link.click();
cuando se procesa este código, no genera error, pero no descarga nada.

No se si hay otra forma de tratar la función de descargar un archivo en esta tecnología, o de indicarme como lo puedo manejar.
Muchas gracias.
__________________
Popayán-Colombia
Responder Con Cita
  #2  
Antiguo 17-12-2016
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: May 2003
Ubicación: Colombia
Posts: 6.835
Poder: 20
jhonny Va camino a la fama
Se me ocurre que en el server crees un método publico que devuelva el archivo, algo así:

Código Delphi [-]
uses System.NetEncoding;
//...
//...
//...

function TServerMethods.GetFileBase64: String;
var
  vStream: TStream;
  vStringStream: TStringStream;
  vBase64: TBase64Encoding;
begin
  vStream := TStream.Create;
  vStringStream := TStringStream.Create;
  try
    vStream := GetPDF; //Esto devuelve un TStream del PDF...

    vBase64 := TBase64Encoding.Create;
    vBase64.Encode(vStream, vStringStream);

    Result := vStringStream.DataString;
  finally
    vStream.Free;
    vStringStream.Free;
    vBase64.Free;
  end;
end;

Código Delphi [-]
function TServerMethods.GetPDF: TStream;
var
  vMemStream: TMemoryStream;
begin
  vMemStream := TMemoryStream.Create;
  vMemStream.LoadFromFile('C:\RutaPDF.pdf');
    
  Result := vMemStream;
end;

Esto devuelve un string de un PDF codificado en base64, lo decodificas con la función Decode de la clase TBase64Encoding y lo tratas como lo necesitas.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
DataSnap REST Error HTTP/1.1 500 blaiselaborde Varios 4 09-11-2015 15:31:03
Datasnap Rest Server dison Desarrollo en Delphi para Android 3 16-05-2014 09:48:44
Descarga y Carga de un Archivo cacu OOP 2 26-04-2010 14:15:48
Descarga archivo TIBFTP mjjj API de Windows 2 08-01-2009 17:07:40
Forzar descarga de archivo. ixMike HTML, Javascript y otros 5 18-11-2007 19:46:26


La franja horaria es GMT +2. Ahora son las 19:51:09.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi