Ir para conteúdo
Fórum Script Brasil
  • 0

Melhor forma de copiar uma figura jpeg para o hd


paulobergo

Pergunta

Bom dia...

Para fazer o download de arquivos, inclusive imagens, via web, uso uma função genérica, mostrada a seguir (Delphi6):

Function Download1URL(const a1Url, a1Dst: string): Boolean;
Begin
  bStatFc1 := False;
  If bIsConDirect then
    hSession1 := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0)
  Else
    hSession1 := InternetOpen('MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  {EndIf}
  Try
    If Assigned(hSession1) then
      Begin
        hService1 := InternetOpenUrl(hSession1, PChar(a1Url), nil, 0, 0, 0);
        If Assigned(hService1) then
          Begin
            Try
              AssignFile(ftSaveFile1, a1Dst);
              ReWrite(ftSaveFile1, 1);
              bOpen2Save1 := True;
              While True do Begin
                dwBytesRead1 := iMemLimit;
                InternetReadFile(hService1, @lpBuffer1, iMemLimit, dwBytesRead1);
                iBytesRec1 := iBytesRec1+dwBytesRead1;
                If dwBytesRead1=0 then break;
                lpBuffer1[dwBytesRead1] := 0;
                BlockWrite(ftSaveFile1, lpBuffer1, dwBytesRead1);
              End;{While True}
              bStatFc1 := iBytesRec1>0;
            Finally
              InternetCloseHandle(hService1);
              If bOpen2Save1 then
                CloseFile(ftSaveFile1);
              {EndIf}
            End;
          End;
        {EndIf Assigned(hService)}
      End;
    {EndIf Assigned(hSession)}
  Finally
    InternetCloseHandle(hSession1);
  End;
  Download1URL := bStatFc1;
End;

{Observação: algumas variáveis, como iMemLimit, estão definidas em outros pontos do programa... iMemLimit, p.e., é inicializada com 16384...
}

Exemplo:

Download1URL('http://200.251.137.2/logoprin.jpg', 'c:\temp\logoprin.jpg');

Bom... o que eu gostaria de saber é se existe alguma outra forma de baixar uma arquivo que seja

mais rápida do que a "InternetReadFile" acima...

Grato por quaisquer dicas!!!!

Abraços!

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Download1URL('http://200.251.137.2/logoprin.jpg', 'c:\temp\logoprin.jpg');

Bom... o que eu gostaria de saber é se existe alguma outra forma de baixar uma arquivo que seja

mais rápida do que a "InternetReadFile" acima...

Voce pode usar assim

Para o Delphi 5

Use o componente NMHTTP da palheta de Internet do Delphi.

Coloque o nome com o qual ele vai ser gravado na propriedade Body, Coloque

InputFileMode := True, e use

NMHTTP1.Get('http://sitedesejado/pasta/arquivo.extensao');

Ou ainda desta maneira

//Download da Internet com Barra de Progresso  para o Delphi 7 

//Coloque um ProgressBar no form e declare a unit ExtActns na cláusula uses:


uses ExtActns

type
TfrMain = class(TForm)
...
private
procedure URL_OnDownloadProgress (Sender: TDownLoadURL; Progress, ProgressMax: 
Cardinal; StatusCode: TURLDownloadStatus; StatusText: String; var Cancel: 
Boolean);
...

implementation
...

procedure TfrMain.URL_OnDownloadProgress(Sender: TDownLoadURL; Progress, 
ProgressMax: Cardinal; StatusCode: TURLDownloadStatus; StatusText: String; var 
Cancel: Boolean);
begin
  ProgressBar1.Max:= ProgressMax;
  ProgressBar1.Position:= Progress;
end;

function DoDownload(vURL, vArquivo : String): Boolean;
begin
  with TDownloadURL.Create(self) do
  try
    URL:= vURL;
    FileName := vArquivo;
    OnDownloadProgress := URL_OnDownloadProgress;
    ExecuteTarget(nil);
  finally
    Free;
  end;
end;

//Utilize assim:

procedure TForm1.Button1Click(Sender: TObject);
begin
   DoDownload('http://www.activedelphi.com.br/programas/art06file01.zip','C:\exemplo.zip');
end;

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...