Avatar billede trolle123 Nybegynder
30. januar 2008 - 10:35 Der er 3 kommentarer

ASP script der kan hente automatisk ud fra en xml fil

Kære eksperter.
Jeg er helt på bar bund ang. programmering i ASP, jeg laver design og arbejder med hjemmesider.
Jeg har et projekt hvor jeg skal bruge et asp script der kan hente billleder på en url adresse når den trikkes af en fil der lander i en mappe på min server.

Når jeg får denne fil skal jeg aktivere :
http://xxxx.xx.dk/cbwf.dll/info?usr=1239&obj=xxxxxx

Her får jeg så en liste over alle de billeder min kunde 1239 har på den navngivne object xxxxxx
<?xml version="1.0" encoding="UTF-8" ?>
<filelist>
<file>
<type>Image</type>
<filename>101.jpg</filename>
<url>http://webfiles.cb.dk/cbwf.dll?usr=1383&obj=4008&fn=101.jpg</url>
<caption>Billede 1</caption>
</file>
<file>
<type>Image</type>
<filename>121.jpg</filename>
<url>http://webfiles.cb.dk/cbwf.dll?usr=1383&obj=4008&fn=121.jpg</url>
<caption>Billede 2</caption>
</file>
<file>
<type>Image</type>
<filename>122.jpg</filename>
<url>http://webfiles.cb.dk/cbwf.dll?usr=1383&obj=4008&fn=122.jpg</url>
<caption>Billede 3</caption>
</file>
<file>
<type>Image</type>
<filename>123.jpg</filename>
<url>http://webfiles.cb.dk/cbwf.dll?usr=1383&obj=4008&fn=123.jpg</url>
<caption>Billede 4</caption>
</file>
<file>
<type>Image</type>
<filename>124.jpg</filename>
<url>http://webfiles.cb.dk/cbwf.dll?usr=1383&obj=4008&fn=124.jpg</url>
<caption>Billede 5</caption>
</file>
<file>
<type>Image</type>
<filename>125.jpg</filename>
<url>http://webfiles.cb.dk/cbwf.dll?usr=1383&obj=4008&fn=125.jpg</url>
<caption>Billede 6</caption>
</file>
<file>
<type>Image</type>
<filename>126.jpg</filename>
<url>http://webfiles.cb.dk/cbwf.dll?usr=1383&obj=4008&fn=126.jpg</url>
<caption>Billede 7</caption>
</file>
<file>
<type>Image</type>
<filename>127.jpg</filename>
<url>http://webfiles.cb.dk/cbwf.dll?usr=1383&obj=4008&fn=127.jpg</url>
<caption>Billede 8</caption>
</file>
<file>
<type>Image</type>
<filename>190.jpg</filename>
<url>http://webfiles.cb.dk/cbwf.dll?usr=1383&obj=4008&fn=190.jpg</url>
<caption>Billede 9</caption>
</file>
<file>
<type>Image</type>
<filename>191.jpg</filename>
<url>http://webfiles.cb.dk/cbwf.dll?usr=1383&obj=4008&fn=191.jpg</url>
<caption>Billede 10</caption>
</file>
<file>
<type>Document</type>
<filename>sag.pdf</filename>
<url>http://webfiles.cb.dk/pdf/1383/4008/sag.pdf</url>
<caption>Dokument 1(pdf)</caption>
</file>

Derefter kan man hente billedet ud fra URL'en som er angivet i noden "url".

Hvordan får jeg lavet et asp script der kan kontrollerer dette og selv hente de billeder der måtte være på en navngiven sag.

Håber I kan hjælpe
Avatar billede verakso Nybegynder
30. januar 2008 - 11:51 #1
Hvad er det du gerne vil?

Skal du ud fra det viste XML eksempel kunne hente selve billedfilen ned og gemme den, eller hvad?
Avatar billede trolle123 Nybegynder
30. januar 2008 - 11:59 #2
Jeg skal have hentet alle billedfilerne ned i en mappe så jeg kan bruge dem på kundes site. Så gennemlæse filen og hente hver enkelt fil i en folder.
Avatar billede verakso Nybegynder
30. januar 2008 - 13:06 #3
Den mappe, er det en lokal mappe, eller er det på din server.

Udfordringen ligger lidt i, at der nok ikke er så mange tilbage der roder med ASP, men nok er skiftet til .NET

Der er nemlig mig bekendt ikke en feature i ASP der kan trigge på, om der er kommet en fil i en mappe - så step et ville være at lave den funktion

Dernæst skal XML filen hentes, dette kan gøres ved hjælp af CreateObject("Microsoft.XMLDOM"), der med ServerHTTPRequest kan hente filen.

Her efter skal den så læses ind i et object (DOM) der så gennemløber alle de types der er image.

Next step er så at iterere over disse elementer, og så hente hvert billede med, hvilket kunne være lidt ala dette:
[code]
Set xmlHTTP    = Server.CreateObject("MSXML2.ServerXMLHTTP")
       
        xmlHTTP.Open "GET", imageURL, False
        xmlHTTP.Send
       
        vStatus        = xmlHTTP.status
        vStatusTxt    = xmlHTTP.statusText
       
        If vStatus = "200" Or vStatusTxt = "OK" Then
       
            Set adoStream    = Server.CreateObject("ADODB.Stream")
            adoStream.Mode    = 3 ' Read/Write
            adoStream.Open
            adoStream.Type    = 1 'adTypeBinary
            adoStream.Write    xmlHTTP.responseBody
            m_sFileName        = sFileName
            m_bResult        = True
            End If
           
            m_sFilePath = sFilePath & m_sFileName

            adoStream.Position = 0
            adoStream.SaveToFile m_sFilePath, 2 'adSaveCreateOverWrite
            adoStream.Close
            Set adoStream = Nothing       
       
        Else
       
            m_bResult = False
            m_sResultTxt = "Error: <br />Status: " & vStatus & "<br />" _
                            & "Text: " & vStatusTxt
       
        End If
       
        Set xmlHTTP = Nothing

[/code]

Så det er noget med at hente filerne med ServerXMLHTTP og så gemme dem på diske med ADODB.Stream

Men igen, så afhænger dette af, om hvor vidt der er rettigheder til dette på serveren.

Hvis du derimod blot skal suge filerne ned lokalt, så vil du måske have mere hjælp med at få nogen til at hjælpe dig med at flikke en lille app sammen, hvis du spørger i .NET grupperne.
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