Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   FireMonkey (https://www.clubdelphi.com/foros/forumdisplay.php?f=50)
-   -   Subir Documento (https://www.clubdelphi.com/foros/showthread.php?t=91477)

zuritavic 15-02-2017 00:54:17

Subir Documento
 
Lo que estoy intentando es hacer una aplicacion donde puedan subir fotos en formato ftp a un servidor, antes lo hacia con el componente SaveDialog pero en firemonkey ese componente no me deja utilizarlo que alternativa puedo usar para poder subir las fotos?

utilizo delphi xe7 y la aplicacion es en android.

Casimiro Notevi 15-02-2017 01:08:44

Creo que estás confundido, ni existen las fotos con formato ftp, ni con el savedialog subes fotos a un servidor ftp.

zuritavic 15-02-2017 01:29:43

yo utilizo este codigo para subir documentos ftp en delphi xe7

Código:

procedure TfrmFacturaPorPargarTotal.btSubirFTPClick(Sender: TObject);
var
  archivoSubir,
  documento,
  extension,
  Nombre_Virtual  :string;
  Id_Doc2 : integer;
  resultado : STRING;
  respuesta : integer;


begin



  if    qrDocumentos.fieldbyname('Documento').asstring <> '' then
      begin
          respuesta :=  MessageDlg('Desea sobre escribir el documento?'+qrDocumentos.fieldbyname('Documento').asstring,    mtConfirmation, [mbYes, mbNo],0);

          if respuesta = mrNo  then
          begin
              exit;
          end;

      end;
  savedialog1.DefaultExt := '*.'+qrDocumentos.fieldbyname('Tipo_Documento').value;
  savedialog1.FileName :=  '*.'+qrDocumentos.fieldbyname('Tipo_Documento').value;

  if savedialog1.Execute then
      begin
          if dm.ftpParametros then

          begin

              documento:= extractFilename(SaveDialog1.FileName);
              extension := ExtractFileExt( SaveDialog1.FileName) ;
              archivoSubir  :=  SaveDialog1.FileName ;
            dm.DevuelveNombre.Prepared := true;
            dm.DevuelveNombre.ExecProc;
            Nombre_Virtual:= dm.DevuelveNombre.Parameters.ParamByName('@nomVirtual').value;
            Nombre_Virtual := Nombre_Virtual+ extension;



            subirFTP(archivoSubir,Nombre_Virtual,'embarquepro.com'//--dm.FTP_URL
            ,'',dm.FTP_USERNAME,dm.FTP_PASSWORD ,strToint(dm.FTP_PUERTO),resultado);
              if resultado = 'OK' then
                  begin

                      dm.spInsDoc.Prepared := true;

                      dm.spInsDoc.Parameters.ParamByName('@Documento').value := documento;
                      dm.spInsDoc.Parameters.ParamByName('@Nombre_Virtual').value := Nombre_virtual;
                      dm.spInsDoc.Parameters.ParamByName('@F_Recibido').value := now;
                      dm.spInsDoc.Parameters.ParamByName('@Creado_por').value := id_usuario;

                      dm.spInsDoc.ExecProc;
                      Id_Doc2 := dm.spInsDoc.Parameters.ParamByName('@Id_Doc2').value;
                      //dm.spInsDoc.Parameters.ParamByName('@VValor_Mensaje int out,
                      // dm.spInsDoc.Parameters.ParamByName('@VMensaje varchar(200) out


                      dm.spUp_Fm_Facturas_Por_Pagar_Doc.Prepared := true;
                      dm.spUp_Fm_Facturas_Por_Pagar_Doc.Parameters.ParamByName('@Id').value := qrDocumentos.fieldbyname('Id').value;
                      dm.spUp_Fm_Facturas_Por_Pagar_Doc.Parameters.ParamByName('@Id_Documento').value := Id_Doc2;
                      dm.spUp_Fm_Facturas_Por_Pagar_Doc.Parameters.ParamByName('@Comentario').value := 'Cargado desde version windows';
                      dm.spUp_Fm_Facturas_Por_Pagar_Doc.Parameters.ParamByName('@contador').value := 1;

                      dm.spUp_Fm_Facturas_Por_Pagar_Doc.ExecProc;
                      dm.spUp_Fm_Facturas_Por_Pagar_Doc.Parameters.ParamByName('@VValor_Mensaje').value;
                      dm.spUp_Fm_Facturas_Por_Pagar_Doc.Parameters.ParamByName('@VMensaje').value;

                  end
              else
                  begin
                    showmessage('erro en el FTP');
                  end ;
              qrDocumentos.Close;
              qrDocumentos.open;


          end;

      end;



end;


AgustinOrtu 15-02-2017 04:37:29

Ahi mas que FTP parece que estas usando algo con acceso a base de datos (procedimiento almacenado, juzgando a simple vista)

Con respecto al SaveDialog fijate si esto te puede servir

Este hilo tambien parece arrojar algo de luz

Neftali [Germán.Estévez] 15-02-2017 09:36:19

Cita:

Empezado por Casimiro Notevi (Mensaje 513284)
Creo que estás confundido, ni existen las fotos con formato ftp, ni con el savedialog subes fotos a un servidor ftp.

En ese código que has añadido hay varias cosas, pero al igual que Casimiro, creo que te estás haciendo un lío.
Lo que parece que estás haciendo ahí es lo siguiente:

1) Seleccionar un fichero de disco que será el que vas a subir al FTP (eso se hace con el componente TSaveDialog)
2) Una vez que tienes el nombre del fichero, ejecutas el procedimiento subirFTP, que imagino (echándole mucha inventiva) que lo que hace es subir el fichero seleccionado (archivoSubir) a un servidor FTP.
3) Al final, tal y como apunta Agustín, si el fichero se ha subido correctamente (if resultado = 'OK') se hacen unas cosas en la Base de Datos.

Tu primer problema, es que Android no implementa dialogos nativos para acceder a los ficheros, por lo tanto FireMonkey no puede llamar esos diálogos.
La única forma de hacer algo similar a lo que hace el TSaveDialog/TOpenDialog para Android, es que tú construyas tus propios diálogos. Tarea que no es fácil.

Lo siguente es subir el fichero al FTP, pero imagino que ese procedimiento usa las Indy, por lo que debería funcionar sin mayores problemas desde Android.


La franja horaria es GMT +2. Ahora son las 11:36:10.

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