Autor Téma: Stažení souboru  (Přečteno 528 krát)

Offline BigSandy

  • Nováček
  • *
  • Příspěvků: 3
  • Karma: 0
    • Verze Delphi: XE2
Stažení souboru
« kdy: 22-09-2017, 08:25:01 »
Zdar.

Když toto dam do prohližeče, vyskočí dotaz, kam to stáhnout
http://84.47.113.9:4022/udp/234.1.1.54:1234


Pokouším se to stahnout v programu a problem.
Jsem zkoušel třeba synapse.

Kód: Delphi [Vybrat]
  1. var
  2. sl: TStringList;
  3. begin
  4. if not HttpGetText('http://84.47.113.9:4022/udp/234.1.1.54:1234', sl) then
  5.    ShowMessage('Nepodařilo se');
  6. end;

Kód: Delphi [Vybrat]
  1. begin
  2.  with THTTPSend.Create do
  3.                        try
  4.  
  5.                         If HTTPMethod('GET','http://84.47.113.9:4022/udp/234.1.1.54:123') then
  6.                         if ResultCode = 200 then Document.SaveToFile('.\data')
  7.                             else ShowMessage('Nepodařilo se');
  8.                        finally
  9.                          Free;
  10.                        end;
  11.  
  12. end;
Kde je problém?

Offline BigSandy

  • Nováček
  • *
  • Příspěvků: 3
  • Karma: 0
    • Verze Delphi: XE2
Re:Stažení souboru
« Odpověď #1 kdy: 24-09-2017, 10:04:15 »
Jsem to zkoušel i přes URLMon a nic :(
Jinak cokoliv jiného stahánu přes URLMon i přes synapse.
Je to tím že to je na portu?

Kód: Delphi [Vybrat]
  1. function DownloadFile(SourceFile, DestFile: string): Boolean;
  2. begin
  3.  try
  4.    Result := UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0, nil) = 0;
  5.     except
  6.      Result := False;
  7.     end;
  8. end;
  9.  
  10. procedure TForm1.Button6Click(Sender: TObject);
  11. begin
  12. if DownloadFile ('http://84.47.113.9:4022/udp/234.1.1.54:123', 'd:\test') then
  13.                         ShowMessage('staženo')
  14.   else ShowMessage ('nestaženo')
  15. end;
  16.  
« Poslední změna: 24-09-2017, 10:09:08 od BigSandy »

Offline geby

  • Plnoletý
  • ***
  • Příspěvků: 164
  • Karma: 13
    • Verze Delphi: 7, 2007, XE2, 10.2
    • Synapse
Re:Stažení souboru
« Odpověď #2 kdy: 24-09-2017, 11:44:00 »
Kde je problem? To nam mas rict ty! My fakt nevime, co ti to presne udela. Jakou ti to vrati chybu, jaky ti to vrati resultcode? Proc se snazit u te synapse nacitat mnohamegovy binarni souibor do textoveho stringlistu?

Offline Ján Masaryk

  • Mladík
  • **
  • Příspěvků: 53
  • Karma: 5
    • Verze Delphi: 2010
Re:Stažení souboru
« Odpověď #3 kdy: 24-09-2017, 18:50:28 »
To čo sťahuješ za súbor ? Keď to malo 110 MB, tak som resetol program...  :o

Sťahoval som to cez toto - funguje mi to už asi 15 rokov:

Kód: Delphi [Vybrat]
  1. function DownloadFile(cSourceURL, cTargetFile: String) : Boolean;
  2. begin
  3.    Result := true;
  4.    with TDownLoadURL.Create(nil) do
  5.       try
  6. // URL a Filename musi byt definovane v try - neviem preco - inak to hádzalo Error downloading URL
  7.          URL := cSourceURL;
  8.          Filename := cTargetFile;
  9. //         OnDownloadProgress := URL_OnDownloadProgress;
  10.          try
  11.             ExecuteTarget(nil);
  12.          except
  13.             Result := false;
  14.          end;
  15.       finally
  16.          Free;
  17.    end;
  18. end;
  19.  
  20.  
  21.  
« Poslední změna: 24-09-2017, 18:59:07 od Ján Masaryk »

Offline Slappy

  • Mladík
  • **
  • Příspěvků: 98
  • Karma: 2
  • Slappy
    • Verze Delphi: 10.2 Tokyo + Vsetky :)
    • unSigned
Re:Stažení souboru
« Odpověď #4 kdy: 25-09-2017, 06:54:57 »
Sťahoval som to cez toto - funguje mi to už asi 15 rokov:

Kód: Delphi [Vybrat]
  1.    with TDownLoadURL.Create(nil) do
  2.  

TDownloadUrl sa pouziva velmi jednoducho, ale su tam nejake problemy, napr s cachovanim suborov. Zisltili sme to, ked sme v aplikacii overovali najnovsiu verziu zo servera: vzdy vracalo ten isty subor aj ked sa medzitym zmenil.

Kód: Delphi [Vybrat]
  1. function TApplicationUpdater.GetCacheFileName(URL: string): string;
  2. var
  3.   pInfo: PInternetCacheEntryInfo;
  4.   bufSize: Cardinal;
  5. begin
  6.   Result := '';
  7.   bufSize := 0;
  8.   pInfo := nil;
  9.   if not GetUrlCacheEntryInfo(PChar(URL), pInfo^, bufSize) then
  10.   begin
  11.     if GetLastError = ERROR_INSUFFICIENT_BUFFER then
  12.       pInfo := AllocMem(bufSize)
  13.     else
  14.       Exit;
  15.   end
  16.   else
  17.     Exit;
  18.  
  19.   if not GetUrlCacheEntryInfo(PChar(URL), pInfo^, bufSize) then
  20.   begin
  21.     FreeMem(pInfo);
  22.     Exit;
  23.   end;
  24.  
  25.   Result := pInfo^.lpszLocalFileName;
  26.   FreeMem(pInfo);
  27. end;
  28.  
  29. function TApplicationUpdater.DownloadFile(var outFile: String): Boolean;
  30. var
  31.   CacheFilename: String;
  32.  
  33. begin
  34.   Result := False;
  35.   try
  36.     with TDownloadURL.Create(nil) do
  37.     try
  38.       URL := Constants.coVersionXmlUrl; << URL: http://www.domena.tld/subor.pripona
  39.       FileName := GetTempDirectory + 'version.xml'; // GetTempDirectory len zaobaluje volanie GetTempPath z WinAPI.Windows
  40.  
  41.        // Delete destination file
  42.        DeleteFile(Filename);
  43.        // If a cached file exists, remove it
  44.        CacheFilename := GetCacheFilename(URL);
  45.        if FileExists(CacheFilename) then
  46.          DeleteFile(CacheFilename);
  47.  
  48.        OnDownloadProgress := OnDownloadProgressChange;
  49.        ExecuteTarget(nil);
  50.  
  51.        Result := True;
  52.        outFile := FileName;
  53.     finally
  54.       Free;
  55.     end;
  56.   except
  57.     // Exception
  58.     Result := False;
  59.   end;
  60. end;
  61.  
  62. procedure TApplicationUpdater.OnDownloadProgressChange;
  63. begin
  64.  
  65. end;

Viac info: https://www.experts-exchange.com/questions/27603603/downloading-internet-file-in-delphi-TWebBrowser.html
Moje projekty: http://www.unsigned.sk Tvorba cool dizajnovych instalatorov v NSIS a Inno Setup. Rozsirenie pre Visual Studio a RAD Studio pre tvorbu NSIS a Inno Setup instalatorov.

Offline Ján Masaryk

  • Mladík
  • **
  • Příspěvků: 53
  • Karma: 5
    • Verze Delphi: 2010
Re:Stažení souboru
« Odpověď #5 kdy: 28-09-2017, 19:45:57 »
Dobré vedieť, dám si to do záložiek  :)

Inak mám takého tušáka, že tomuto vracaniu starého súboru sa dá zabrániť aj v nastavení Možnosti siete internet - Zisťovať či existuje novšia verzia stránok - pri každej návšteve webovej stránky.

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Jméno: E-mail:
Ověření:
Křestní jméno zpěváka Gotta: