Solved

Download file to memory?

Posted on 2008-10-23
8
286 Views
Last Modified: 2013-11-23
Hi Experts,
Someone can help me to download a file (any file on webs) to the memory (stream or somthing)?

thanks :)
0
Comment
Question by:controlr
  • 4
  • 4
8 Comments
 
LVL 37

Expert Comment

by:Geert Gruwez
ID: 22784458
procedure TForm1.GetFileFromWeb;
var astream: TMemoryStream;
  aFile: string;
begin
  aStream := TMemoryStream.Create;
  try
    idHttp1:=TIdHTTP.Create(self);
    try
      aFile := 'http://www.google.com';
      idHttp1.Get(Site, aStream);
    finally
      idHttp1.Free;
    end;
    // do something with the stream
  finally
    aStream.Free;
  end;
end;  
0
 

Author Comment

by:controlr
ID: 22784903

thats look good
but why i cant load the stream to an Timage?

example:
aFile := 'http://www.makav.co.il/logo.bmp';
  Image1.Picture.Bitmap.LoadFromStream(astream);

thanks for helping
0
 
LVL 37

Expert Comment

by:Geert Gruwez
ID: 22784919
is there a bitmap in the picture before you load it ?

load a bitmap in the picture first with the ide
I can't be anything, like a white bitmap of 1x1 square

then try again
0
 

Author Comment

by:controlr
ID: 22784967
i tried that allready and it does not work :(
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 37

Expert Comment

by:Geert Gruwez
ID: 22784973
does loading the file from the website work ?
0
 

Author Comment

by:controlr
ID: 22784991
i think yes because when i save it to file i see the image.
but i want to save it to stream and then to load it directly to the timage without using the disk
0
 
LVL 37

Accepted Solution

by:
Geert Gruwez earned 500 total points
ID: 22785088
i can't test the Get function here as i am behind a firewall,
i'll test the other stuff

you need to set the stream to the beginning




procedure TForm1.GetFileFromWeb;

var astream: TMemoryStream;

  aFile: string;

begin

  aStream := TMemoryStream.Create;

  try

    idHttp1:=TIdHTTP.Create(self);

    try

      aFile := 'http://www.google.com';

      idHttp1.Get(Site, aStream);

    finally

      idHttp1.Free;

    end;

    aStream.Seek(soFromBeginning, 0);

    Image1.Picture.Bitmap.LoadFromStream(aStream);

  finally

    aStream.Free;

  end;

end;  

Open in new window

0
 

Author Comment

by:controlr
ID: 22785122
thanks a lot man!!!!
its working
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

The uses clause is one of those things that just tends to grow and grow. Most of the time this is in the main form, as it's from this form that all others are called. If you have a big application (including many forms), the uses clause in the in…
In my programming career I have only very rarely run into situations where operator overloading would be of any use in my work.  Normally those situations involved math with either overly large numbers (hundreds of thousands of digits or accuracy re…
Internet Business Fax to Email Made Easy - With  eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, f…
Learn how to create flexible layouts using relative units in CSS.  New relative units added in CSS3 include vw(viewports width), vh(viewports height), vmin(minimum of viewports height and width), and vmax (maximum of viewports height and width).

920 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now