/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Overførsel af fil til ekstern server
Fra : Rasmus Lund Pedersen


Dato : 02-10-02 11:02

Hej

Jeg har brug for at kunne sende en XML dokument ved hjælp af en HTTP POST
FORM, til en ekstern server.

Jeg har et script som fra en SQL Server generere et XML dokument, som
gemmes på en webserver. Nu vil jeg gerne have sendt dette XML dokument til
en ekstern http adresse, som skal bearbejde disse info. Når jeg opbygger en
HTML FORM og sender det som ContentType = "multipart/form-data", så fungere
det fint. Men da filerne ligger på serveren vil brugerne ikke have adgagn
til disse. Derfor vil jeg gerne kunne sende filen direkte via HTTP som en
POST, uden at brugeren skla vælge filen.

Jeg har forsøgt at benytte komponenten AspHTTP fra serverObjects inc. men
den kan jeg ikke få til at sende filen med??

E der nogle der kan hjælpe eller har en idee til hvordan jeg kan gører
dette?

--

Med venlig hilsen

Rasmus Lund Pedersen




 
 
Kim Bach Petersen (02-10-2002)
Kommentar
Fra : Kim Bach Petersen


Dato : 02-10-02 12:05

Jeg har lavet noget sådant i ASP.NET - en robot, der kan poste filer via
http til en webserver. På webserveren ligger en side, som fanger filerne.
Siden er i princippet en standard form-behandler, hvor form'en simuleres af
robotten.

Jeg forestiller mig, at noget tilsvarende kan laves i ASP, hvis man kan
finde en komponent, der kan sende som 'POST'. I ASP:NET er det meget enkelt,
fordi der findes en klasse til det:

WebClient.UploadFile(uriString, "POST", strFilnavn)

Jeg kan poste et mere udførligt eksempel, hvis det er en hjælp.

Kim
--
· www.kensho.dk · psykologi og spiritualitet ·



Rasmus Lund Pedersen (02-10-2002)
Kommentar
Fra : Rasmus Lund Pedersen


Dato : 02-10-02 12:14

Tak vil gerne have et eksempel.


Rasmus

"Kim Bach Petersen" <kim@kensho.dk> skrev i en meddelelse
news:anejt1$8ke$1@sunsite.dk...
> Jeg har lavet noget sådant i ASP.NET - en robot, der kan poste filer via
> http til en webserver. På webserveren ligger en side, som fanger filerne.
> Siden er i princippet en standard form-behandler, hvor form'en simuleres
af
> robotten.
>
> Jeg forestiller mig, at noget tilsvarende kan laves i ASP, hvis man kan
> finde en komponent, der kan sende som 'POST'. I ASP:NET er det meget
enkelt,
> fordi der findes en klasse til det:
>
> WebClient.UploadFile(uriString, "POST", strFilnavn)
>
> Jeg kan poste et mere udførligt eksempel, hvis det er en hjælp.
>
> Kim
> --
> · www.kensho.dk · psykologi og spiritualitet ·
>
>



Kim Bach Petersen (02-10-2002)
Kommentar
Fra : Kim Bach Petersen


Dato : 02-10-02 20:54

> Tak vil gerne have et eksempel.

OK. På serveren placeres en form-behandler, som fanger filer der postes.
Bemærk, at jeg har kun taget det essentielle med, i praksis er det nok en
god ide at sikre sig, at filer kommer fra rette afsender og eventuelt
kryptere filnavn, data og eventuelle info. Form-behandleren ser således ud:

<%@ Page Language="VB" %>
<%@ Import Namespace="System.IO" %>
<script language="VB" runat="server">
Sub Page_Load()
Dim i As Integer
Dim MyFileCollection As HttpFileCollection = Request.Files
For i = 0 To MyFileCollection.Count - 1
If MyFileCollection(i).ContentLength > 0 Then
Try
MyFileCollection(i).SaveAs(MyFileCollection(i).FileName)
litReturn.Text += "OK" & ControlChars.CrLf
Catch E As Exception
litReturn.Text += "Exception saving file on server: " & E.Message &
ControlChars.CrLf
End Try
Else
litReturn.Text += "Error: Zero-length file posted." & ControlChars.CrLf
End If
Next
End If
End Sub
</script>
<ASP:Literal id="litReturn" runat="server" />

Robotten, der sender filer, er en løkke byggeet op omkring

Dim MyWebClient As New WebClient
Dim strStatus As String
For Each ...
strStatus += Encoding.ASCII.GetString(myWebClient.UploadFile(uriString,
"POST", strFilnavn)) & ControlChars.CrLf
Next ...

Der kan eventuelt sendes information om filen med ved at tilføje

Dim myQueryStringCollection As New NameValueCollection()
myQueryStringCollection.Add("Key", HttpUtility.UrlEncode("Value"))
myQueryStringCollection.Add("AnotherKey", HttpUtility.UrlEncode("Value"))
myWebClient.QueryString = myQueryStringCollection

inden kaldet til myWebClient.UploadFile.

Selv har jeg lavet min robot som en lille Windows Forms program, der kan
afvikles via opgavestyring, så filerne postes automatisk med faste
intervaller og dermed opdaterer webserveren.

Kim



Søg
Reklame
Statistik
Spørgsmål : 177554
Tips : 31968
Nyheder : 719565
Indlæg : 6408852
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste