Avatar billede jens_bach Nybegynder
31. august 2008 - 01:17 Der er 12 kommentarer og
1 løsning

Web site - proxy download send IMG

Hej...

jeg skal lavet et (proxy) site ;)

hvordan kan man lave en side der downloader et IMG fra en server og der efter sender det til klienten..


som dette...


-----------
<h1>bla bafewo adwfo9feralkdf </h1>
<img src="ProxyImg.xxx?url=http://www.eksperten.dk/img/epro.png">
<br> wafojawf afno adf
-----------

jeg kan godt lave et site der downloader et img og sætter, en imgbox til at vise det. Men så bliver det til en html side og ikke kun en fx BMP fil

tak
Avatar billede arne_v Ekspert
31. august 2008 - 01:20 #1
Du laver en side hvor page load henter siden med WebClient/HttpWebRequest
og streamer den tilbage til browseren.
Avatar billede arne_v Ekspert
31. august 2008 - 01:24 #2
Jeg kan godt prøve at bixe et eksempel !
Avatar billede jens_bach Nybegynder
31. august 2008 - 01:24 #3
ps. jeg skal sende et username/password til serveren, den rigitige server ;)
Avatar billede jens_bach Nybegynder
31. august 2008 - 01:25 #4
det må du meget gerne arne

tak
Avatar billede arne_v Ekspert
31. august 2008 - 01:38 #5
Første forsøg:

<%@ Import Namespace="System.Net,System.IO" %>
<script language="VB" runat="server">
    Private Sub Page_Load(src As Object, e As EventArgs)
        Dim req As HttpWebRequest = CType(WebRequest.Create(Request("url")), HttpWebRequest)
        Dim resp As HttpWebResponse = CType(req.GetResponse, HttpWebResponse)
        Dim stm As Stream = resp.GetResponseStream
        Response.ContentType = resp.ContentType
        Dim b(10000) As Byte
        Dim n As Integer
        n = stm.Read(b, 0, b.Length)
        While n > 0
            Dim b2(n) As Byte
            Array.Copy(b, b2, n)
            Response.BinaryWrite(b2)
            n = stm.Read(b, 0, b.Length)
        End While
        stm.Close
        resp.Close
    End Sub
</script>
Avatar billede arne_v Ekspert
31. august 2008 - 01:39 #6
Hvordan skal det username/password sendes ?

Som såkaldt HTTP BASIC authentication ?
Avatar billede arne_v Ekspert
31. august 2008 - 01:45 #7
Prøv med:

req.Credentials = new NetworkCredential("mitbrugernavn", "mitpassword")
Avatar billede jens_bach Nybegynder
01. september 2008 - 21:57 #8
takker
men hvodan sætter jeg det ind i mit project ?
Avatar billede jens_bach Nybegynder
01. september 2008 - 22:32 #9
det er nok lidt ala dette

HTML
<img src="MyVirtualUrl.aspx">


C# Server Side.

MemoryStream MemStream = new MemoryStream();

//
// ImgData is built in here as a Byte[] array. Details omitted
for space.
//

MemStream.Write(ImgData.Data,0,ImgData.Data.Length );
MemStream.WriteTo(context.Response.OutputStream);
MemStream.Close();

context.Response.Cache.SetNoServerCaching();

context.Response.Cache.SetCacheability(System.Web. HttpCacheability.NoCache);
context.Response.Cache.SetNoStore();
context.Response.Cache.SetExpires(new
DateTime(1900,01,01,00,00,00,00));

context.ClearError();
context.Response.ContentType = "image/JPEG";
context.Response.StatusCode = 200;
context.Response.Flush();
Avatar billede arne_v Ekspert
01. september 2008 - 23:08 #10
Det sidste C# forstår jeg ikke.

Min kode snippet kan vel bruges direkte as is i sammenhæng med HTML i dit oprindelige
spørgsmål.
Avatar billede jens_bach Nybegynder
01. september 2008 - 23:38 #11
Dim req As HttpWebRequest = CType(WebRequest.Create("http://dotnetslackers.com/dnsimages/header_logo.gif"), HttpWebRequest)
        Dim resp As HttpWebResponse = CType(req.GetResponse, HttpWebResponse)
        Dim stm As Stream = resp.GetResponseStream
        Dim memoryStream As New MemoryStream


        Dim buffer As Byte() = New Byte(4095) {}
        Dim byteSeq As Integer = stm.Read(buffer, 0, 4096)


        Do While byteSeq > 0
            context.Response.OutputStream.Write(buffer, 0, byteSeq)
            byteSeq = stm.Read(buffer, 0, 4096)
        Loop
Avatar billede jens_bach Nybegynder
01. september 2008 - 23:39 #12
det virker Tak ;) vil du smide et svar... tak du fik mig på vej
Avatar billede arne_v Ekspert
02. september 2008 - 00:13 #13
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester