Toon posts:

[asp] html file opslaan op server

Pagina: 1
Acties:
  • 227 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik heb een asp script die een rapport genereerd. Nu wil ik dat er een button op het rapport komt en als je erop klikt dat het rapport naar de server wordt verstuurd en opgeslagen als een html file.

heb wel een upload script, maar daar moet je een bestand selecteren om te uploaden. Ik wil juist het automatisch genereerde rapport direct uploaden naar de server.

Dit alles moet in asp gebeuren?

  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
Dan doe je dat toch met het filesystemobject. Daar kan je een stream gebruiken en dat sla je dan op in een bestand.

Verwijderd

Topicstarter
Is het niet zo dat je met het file system object eerst het bestand lokaal moet opslaan voordat je er wat mee kunt doen?

  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
Nee hoor, je maakt dat bestand automatisch zeg je. Dus ik neem aan dat dat op je server gebeurdt. Dus je hebt alles gegevens al van dat html bestand. Nu output je hem naar het scherm neem ik aan, maar dan kun je die gegevens dus ook in een stream wegschrijven naar een bestand.

Verwijderd

Topicstarter
Supervisor schreef op 14 March 2003 @ 11:24:
Nee hoor, je maakt dat bestand automatisch zeg je. Dus ik neem aan dat dat op je server gebeurdt. Dus je hebt alles gegevens al van dat html bestand. Nu output je hem naar het scherm neem ik aan, maar dan kun je die gegevens dus ook in een stream wegschrijven naar een bestand.
Je bedoelt zoiets?

code:
1
2
3
4
5
6
7
8
9
<%
dim fs,tfile
set fs=Server.CreateObject("Scripting.FileSystemObject")
set tfile=fs.CreateTextFile("c:\somefile.txt")
tfile.WriteLine("Hello World!")
tfile.close
set tfile=nothing
set fs=nothing
%>

  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
Yup zo ziet het er wel goed uit, hoewel je niet van een stream gebruik maakt, maar ik dacht dat het op deze manier ook werkt.

Verwijderd

Topicstarter
mmmmmmmmmmhhhhhhh, het lukt me toch niet!


Klik hier voor de source code


De uitvoer van dit bestand moet dus op de server opgeslagen worden

[ Voor 99% gewijzigd door Verwijderd op 14-03-2003 12:44 . Reden: toch maar effe de code in een bestandje gegooid ]


  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Wat voor foutmelding krijg je ?

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


Verwijderd

Topicstarter
Geen foutmelding.
Deze bovenstaande code werkt wel. Alleen is het nu de vraag hoe kan ik de uitvoer van dit bestand opslaan op de server in html formaat?

  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Door het een extentie .htm te geven misschien?
Vervolgens:
code:
1
2
tfile.WriteLine("<html>")
tfile.WriteLine("<head>")

Zie ook:
http://www.w3schools.com/asp/met_getfilename.asp
http://www.w3schools.com/asp/asp_ref_textstream.asp

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


Verwijderd

Topicstarter
er moet toch een makkelijkere manier te vinden zijn dan overal tfile.WriteLine("...") voor te zetten?

en dan zit ik nog met het probleem dat het asp bestand nog nergens is opgeslagen (wel in cache) dus kan die functie
code:
1
2
3
4
5
6
7
8
9
<%
dim fs,tfile
set fs=Server.CreateObject("Scripting.FileSystemObject")
set tfile=fs.CreateTextFile("c:\somefile.txt")
tfile.WriteLine("Hello World!")
tfile.close
set tfile=nothing
set fs=nothing
%>


volgens mij niet gebruiken omdat dit alleen opgaat voor bestaande bestanden!

[ Voor 69% gewijzigd door Verwijderd op 14-03-2003 12:42 ]


Verwijderd

Topicstarter
Is het anders mogelijk om de lokatie op te geven waar het bestand gecached wordt. Want dan kan ik namelijk dat bestand gewoon uploaden. Dan ben ik er namelijk ook!?

  • maikel
  • Registratie: Januari 2001
  • Laatst online: 12:52
Verwijderd schreef op 14 maart 2003 @ 12:38:
er moet toch een makkelijkere manier te vinden zijn dan overal tfile.WriteLine("...") voor te zetten?

en dan zit ik nog met het probleem dat het asp bestand nog nergens is opgeslagen (wel in cache) dus kan die functie
code:
1
2
3
4
5
6
7
8
9
<%
dim fs,tfile
set fs=Server.CreateObject("Scripting.FileSystemObject")
set tfile=fs.CreateTextFile("c:\somefile.txt")
tfile.WriteLine("Hello World!")
tfile.close
set tfile=nothing
set fs=nothing
%>


volgens mij niet gebruiken omdat dit alleen opgaat voor bestaande bestanden!
Je moet het niet zien als 'de uitvoer van het asp-bestand opslaan', maar meer als 'ipv de uitvoer van het asp-bestand naar de client (response) te schrijven, nu naar een bestand schrijven'.

Het maakt dus helemaal niet uit waar het asp-bestand staat.
Nu zet je overal "response.write ...." neer, maar dat moet je dus zo aanpassen dat ie het naar het bestand schrijft. En dat mag dus best een nieuw bestand zijn.

  • Crayne
  • Registratie: Januari 2002
  • Laatst online: 17-03-2025

Crayne

Have face, will travel

Kijk hier eens, courtesy of Google (3e resultaat)

[ Voor 10% gewijzigd door Crayne op 14-03-2003 14:43 ]

Mijn Library Thing catalogus


Verwijderd

Topicstarter
Alleen is het wel zo dat de uitvoer gewoon op het scherm moet komen en als optie moet die kunnen worden opgeslagen op een centrale plaats (server)

En ik was in de veronderstelling dat ik de code niet weer helemaal hoef aan te passen 8)7 8)7 voor het opslaan naar de server.
Crayne schreef op 14 March 2003 @ 14:42:
Kijk hier eens, courtesy of Google (3e resultaat)
Heb het geprobeerd, alleen gaat mijn hele lay-out naar de kl***. Dus dat is ook geen oplossing.

[ Voor 35% gewijzigd door Verwijderd op 14-03-2003 15:00 ]


  • maikel
  • Registratie: Januari 2001
  • Laatst online: 12:52
Wat je ook zou kunnen doen:

zet een hidden-inputfield op je pagina en achter de 'save'-knop zet je een stukje javascript die de hele content (document.innerHTML of zo) in de value van dat input-field zet en vervolgens het form submit.
In je ASP kijk je dan of dat veld is ingevuld en zo ja, sla je de value daarvan op in een bestand.
Je moet dan misschien wel even wat dingen eruit filteren (zoals bijv. de save-knop zelf).

Verwijderd

Topicstarter
Ik zat te denken (voor zover ik het nog kan , ben al twee dagen er mee bezig). Als ik nu de lokatie van het genereerde file die opgeslagen wordt op de client kan opvragen via een script dan kan ik de cache file uploaden naar de server.

Heeft iemand nog een idee voor het opvragen van de lokatie van het cache bestand?

(ik wordt een beetje simpel |:( )

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Je pakt het nogal dom aan als ik eerlijk ben...

Je hebt nu een response.write gebruikt om het spul naar buiten te sturen en een heleboel losse html erlangs...

Waarom doe je niet het volgende:

* Maak een "template"-html file (een "leeg" rapport) met een bult vars erin (dus <td>@NAAM@</td> enzovoorts
* Lees vervolgens die template in in een string (strTemplate) met het FSO object
* Replace alle variabelen met je waarden (dus bijv. strTemplate = Replace(strTemplate,"@NAAM@",strNaam) waarbij strTemplate een string is die de template bevat en strNaam de variabele is met de naam erin).
* Doe dat voor alle vars
* Vervolgens geef je afhankelijk van de wens "naar browser" of "naar file" een response.write strTemplate of een FSO opdracht om strTemplate te saven...

dus in pseudo code (ik ga het niet voor je uitschrijven ;)):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Dim strTemplate, OutPut , strNaam, strAdres, strPostcode etc

strTemplate = LoadTemplate ("c:\template.htm")
OutPut = UCASE(Trim(request.form("OutPutTo")))

strNaam = request.form("txtName")
strAdres = request.form("txtAddress")
strPostcode = request.form("txtZipCode")


strTemplate = Replace(strTemplate,"@NAAM@",strName)
strTemplate = Replace(strTemplate,"@ADRES@",strAdres)
strTemplate = Replace(strTemplate,"@POSTCODE@",strPostcode)

If OutPut = "TOFILE" Then
  SaveTemplate(strTemplate, "C:\myreport.htm")
else
  response.write strTemplate
end if

Function LoadTemplate(strFileName)
  Open FileName
  LoadTemplate = LoadFile(strName)
  Close FileName
End Function

Function SaveTemplate(strFileName)
  Open strFileName for Output
  Write strFilename
  Close strFileName
End Function


Dit lijkt mij best optimaal en relatief makkelijk aan te passen als het nodig is...

[ Voor 34% gewijzigd door RobIII op 14-03-2003 16:45 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
code:
1
2
3
4
5
6
7
strNaam = request.form("txtName")
strAdres = request.form("txtAddress")
strPostcode = request.form("txtZipCode")

strTemplate = Replace(strTemplate,"@NAAM@",strName)
strTemplate = Replace(strTemplate,"@ADRES@",strAdres)
strTemplate = Replace(strTemplate,"@POSTCODE@",strPostcode)
En dat kan nog optimaler (:?) door te zorgen dat je vars in je template hetzelfde heten als de vars in je form dat je post. Je kunt daar dan van maken:

code:
1
2
3
4
5
Dim V

For each V in request.form
  strTemplate = Replace(strTemplate, "@" & V & "@", request.form(V))
Next


Daardoor kun je op je form en in je template een veld erbij butsen en het werkt (mits ze dus hetzelfde heten).

[ Voor 193% gewijzigd door RobIII op 14-03-2003 16:44 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Ik heb het denk ik :)

Je kan met het XML HTTP object (standaard op Win2k) de pagina ophalen, vervolgens kan je heel de content in een variable zetten, en die variable opslaan in een bestand!

En klaar ben je!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:16

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 14 maart 2003 @ 17:19:
Ik heb het denk ik :)

Je kan met het XML HTTP object (standaard op Win2k) de pagina ophalen, vervolgens kan je heel de content in een variable zetten, en die variable opslaan in een bestand!

En klaar ben je!
In dat geval kan je net zo goed ipv een Response.Write te gebruiken, alles opslaan in een string. En gelang men wil, deze outputten d.m.v. Response.Write of naar het FSO.

Nadeel van deze methode alleen is dat deze niet zo heel efficient is, aangezien ASP geen stringbuffer oid heeft.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
ff tip tussen door...
noem je includes geen .inc maar .inc.asp of gewoon .asp anders kan men je source lezen...

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


Verwijderd

4of9 schreef op 15 March 2003 @ 17:22:
ff tip tussen door...
noem je includes geen .inc maar .inc.asp of gewoon .asp anders kan men je source lezen...
Klopt idd, zeer vaak gemaakte fout!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:16

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 15 maart 2003 @ 18:49:
[...]
Klopt idd, zeer vaak gemaakte fout!
Tenzij je je .inc bestanden natuurlijk ook door de asp-parser haalt. :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • robjanssen
  • Registratie: September 2001
  • Laatst online: 02-08 16:10

robjanssen

Software Developer

Volgens mij ben je helemaal verkeerd aan het denken en het is zo simpel.

Kijk maar eens:

ASP.NET Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Dim fs, tfile
Dim strCode

strCode = "<html>" & vbCrLf _
              & "<head>" & vbCrLf _
              & "<title>Test</title>" & vbCrLf _
              & "</head>" & vbCrLf _
              & "Hello World" & vbCrLf _
              & "<html>" & vbCrLf
'Zet op het scherm
Response.Write strCode

'Schrijf naar bestand
Set fs = Server.CreateObject("Scripting.FileSystemObject")
Set tfile = fs.CreateTextFile("c:\somefile.txt")
tfile.WriteLine strCode
tfile.close
Set tfile = Nothing
Set fs = Nothing

Verwijderd

robjanssen schreef op 15 March 2003 @ 22:06:
Volgens mij ben je helemaal verkeerd aan het denken en het is zo simpel.

Kijk maar eens:

ASP.NET Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Dim fs, tfile
Dim strCode

strCode = "<html>" & vbCrLf _
              & "<head>" & vbCrLf _
              & "<title>Test</title>" & vbCrLf _
              & "</head>" & vbCrLf _
              & "Hello World" & vbCrLf _
              & "<html>" & vbCrLf
'Zet op het scherm
Response.Write strCode

'Schrijf naar bestand
Set fs = Server.CreateObject("Scripting.FileSystemObject")
Set tfile = fs.CreateTextFile("c:\somefile.txt")
tfile.WriteLine strCode
tfile.close
Set tfile = Nothing
Set fs = Nothing
Tja, is het minder werk dan elke keer tfile.WriteLine neer te zetten?

Verwijderd

Topicstarter
Eindelijk na lang zoeken heb ik wat gevonden waarmee ik het waarschijnlijk kan oplossen (ga er nu aan beginnen, om de code aan te passen).

Ik ga proberen of het lukt met deze functies:

klik hier voor de code

Hoop dat het allemaal gaat lukken :9

Verwijderd

Verwijderd schreef op 18 March 2003 @ 09:21:
Eindelijk na lang zoeken heb ik wat gevonden waarmee ik het waarschijnlijk kan oplossen (ga er nu aan beginnen, om de code aan te passen).

Ik ga proberen of het lukt met deze functies:

klik hier voor de code

Hoop dat het allemaal gaat lukken :9
Dat zei ik toch? XML HTTP object?

Verwijderd

Topicstarter
Verwijderd schreef op 18 maart 2003 @ 10:13:
[...]
Dat zei ik toch? XML HTTP object?
applaus voor _/-\o_ _/-\o_ _/-\o_

Maarja nu nog werkend krijgen, Krijg namelijk wel de content van een url van een andere server, maar als ik een file op mijn eigen server aanroep wil het nog niet lukken.

  • Ashbjorn
  • Registratie: Maart 2001
  • Laatst online: 07-04-2019

Ashbjorn

Who's your daddy! WHUZAAA

Teuny, voeg me anders even toe aan je ICQ: 16478641, dan wil ik je er wel even door loodsen...

Athlon 64 3500+ || MSI Neo2 Platinum || 1GB PC3200 Corsair XLPRO 2-2-2-5@1T || Hitachi SATA 250GB@7200 8MB || WD Raptor 73GB@10000 8MB || AOpen GF 6800 GT 256MB || SB Audigy2 Platinum || Logitech Laser G5 || 19" Iiyama HM903DT || 1280@100Hz


  • Ashbjorn
  • Registratie: Maart 2001
  • Laatst online: 07-04-2019

Ashbjorn

Who's your daddy! WHUZAAA

Teun, als je dit leest, Ik krijg dit als ik jou een ICQ wil sturen:

[18-03 @ 10:56:00] *** Error while sending IM: Not supported by client

Athlon 64 3500+ || MSI Neo2 Platinum || 1GB PC3200 Corsair XLPRO 2-2-2-5@1T || Hitachi SATA 250GB@7200 8MB || WD Raptor 73GB@10000 8MB || AOpen GF 6800 GT 256MB || SB Audigy2 Platinum || Logitech Laser G5 || 19" Iiyama HM903DT || 1280@100Hz


Verwijderd

Atlantez schreef op 18 March 2003 @ 10:57:
Teun, als je dit leest, Ik krijg dit als ik jou een ICQ wil sturen:

[18-03 @ 10:56:00] *** Error while sending IM: Not supported by client
GoT is toch bedoeld om informatie te sharen zodat ook andere mensen er wat aan hebben? :?

Verwijderd

Topicstarter
dit is de oplossing, met dank aan Atlantez

ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
 <%@ Language="VbScript" %>

<% Option Explicit %>

<%
    Public Function CreateFile(ByRef pStrFileName, ByRef pStrContent)

        Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject")
        Dim objFile

        If Not CBool(InStr(pStrFileName,":")) Then pStrFileName = Server.MapPath(pStrFileName)

        Set objFile = objFSO.CreateTextFile(pStrFileName,True)
        objFile.Write pStrContent

        Set objFile = Nothing
        Set objFSO = Nothing

        CreateFile = True

    End Function ' CreateFile(ByRef pStrFileName)


    Public Function OpenURL(ByVal pStrURL,ByVal pStrMethod)

        Dim objHTTP
        Dim strContent

        Set objHTTP = Server.CreateObject("Msxml2.XMLHTTP.4.0")
        Call objHTTP.Open(UCase(pStrMethod), pStrURL, False)
        objHTTP.Send
        strContent = objHTTP.ResponseText
        Set objHTTP = Nothing

        OpenURL = strContent

    End Function ' OpenURL(ByVal pStrURL,ByVal pStrMethod)



    Dim strRapport : strRapport = OpenURL("http://www.tweakers.net","GET")

    Response.Write strRapport

    Call CreateFile("Rapport.html",strRapport)


%> 


Alleen werkt het bij mij nog niet :(

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:16

gorgi_19

Kruimeltjes zijn weer op :9

En wij mogen gokken wat er niet werkt? :?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Bij mij werkt het niet, omdat:

ik de volgende foutmelding krijg:

Error Type:
msxml4.dll (0x80070005)
Access is denied.
/test/outlooksave.asp, line 34

Als ik rechten geef op het dll bestand werkt het nog niet, ook heeft het asp bestand write en read rechten via de ISS.

Vul ik bij de regel
Dim strRapport : strRapport = OpenURL("http://www.tweakers.net","GET") dan wek=rkt het script wel, vul ik een asp bestand van mijn eigen server in dan krijg ik bovenstaande foutmelding

[ Voor 28% gewijzigd door Verwijderd op 19-03-2003 09:34 ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Nogmaals, je zit ontzettend moeilijk te doen voor niks....
Ik zal het nog één keer uitleggen:

Stel je output samen in een string als volgt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Dim strOut
Dim objFSO, objFile, tmpFileName

strOut = "<html>" & vbCrLf
strOut = strOut & "  <head>" & vbCrLf
strOut = strOut & "    <title>Bla</bla>" & vbCrLf
strOut = strOut & "  </head>" & vbCrLf
strOut = strOut & "  <body>" & vbCrLf
strOut = strOut & "    <p>Mijn output <b>naar willekeurige uitvoer</b></p>" & vbCrLf
strOut = strOut & "    <p>Mijn output <b>naar willekeurige uitvoer</b></p>" & vbCrLf
strOut = strOut & "    <p>Mijn output <b>naar willekeurige uitvoer</b></p>" & vbCrLf
strOut = strOut & "  </body>" & vbCrLf
strOut = strOut & "</html>" & vbCrLf

if request.querystring("WHERE")="FILE" then
  Set objFSO = CreateObject("Scripting.FileSystemObject")
  tmpFileName = Server.MapPath("rapport.html")
  Set objFile = objFSO.CreateTextFile(tmpFileName,True)
  objFile.Write strOut
  Set objFile = Nothing
  Set objFSO = Nothing

  response.write "File opgeslagen" 'Of response.redirect ofzo...
else 'Output naar browser
  response.write strOut
end if


Uit mijn blote bol ;)

Nog mooier is de template die ik ergens eerder in deze draad uitlegde. Zie maar wat je hier mee doet, maar ik denk dus dat je helemaal verkeerd zit te denken...

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Topicstarter
de code heeft bijna 500 regels, ik ga niet voor elke regel strOut = strOut & " zetten!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:16

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 19 March 2003 @ 10:38:
de code heeft bijna 500 regels, ik ga niet voor elke regel strOut = strOut & " zetten!
Sowieso hebben ze daar ook Wordpad met de replace functie voor uitgevonden...

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
en wat wil je vervangen dan voor strOut = strOut & " , de open (<) tag van html???

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:16

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 19 March 2003 @ 10:45:
en wat wil je vervangen dan voor strOut = strOut & " , de open (<) tag van html???
* gorgi_19 moet goed lezen... En goed nadenken.. Koffie!!!! :+

'k had in gedachten de Response.Write. Verklaart wel wat.. :)

Maar goed, wat had je ingevuld als serveradres van je eigen server?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Het ip nummer, want ik zit nu in een test omgeving te werken.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op 19 March 2003 @ 10:38:
de code heeft bijna 500 regels, ik ga niet voor elke regel strOut = strOut & " zetten!
Neeeheeee... Lees dan:
RobIII schreef op 19 maart 2003 @ 10:34:
Nog mooier is de template die ik ergens eerder in deze draad uitlegde.
Zie daarvoor dus [rml]RobIII in "[ asp] html file opslaan op server"[/rml] en [rml]RobIII in "[ asp] html file opslaan op server"[/rml]
Dat hoeft helemaal niet als je een template gebruikt...Da's:

A ) Mooiere methode
B ) Makkelijker aan te passen in een later stadium
C ) Stuk leesbaardere code
D ) ...enzovoorts

Ik geef het op...

[ Voor 15% gewijzigd door RobIII op 19-03-2003 16:08 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Topicstarter
Toch heb ik nu een makkelijkere oplossing gevonden (en universeel, aangezien er verschillende formulieren moeten worden opgeslagen).

Het is misschien niet de beste maar het werkt wel perfect.

Daar komt ie:


de code die ervoor zorgt dat de content van het gegenereerde (wat een woord 8)7 ) asp bestand wordt opgeslagen in een javascript variabele:

ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<script language=JavaScript>

function gaan()
{ 
  var range = document.body.createTextRange();
  var htmlcode = range.htmlText;

  klaar.name.value=htmlcode;

}  
 </script>


<form method="POST" name="klaar" action="test.asp" onsubmit="gaan();">
<textarea name="name">
<script>document.write.htmlcode</script>
</textarea><br>
<input type=submit value=Submit>
</form> 



Het bestand dat er voor zorgt dat de variable met daarin de inhoud wordt opgeslagen op de server:

ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<%
  WriteToFile Request.Form("name")

Sub WriteToFile(str)
  Const ForReading = 1, ForWriting = 2, ForAppending=8
  Dim fso, f
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.OpenTextFile("c:\test\testfile.html", ForAppending, True)
  f.Write str
  f.Close
End Sub 


%> 


Dus......

  • Flard
  • Registratie: Februari 2001
  • Laatst online: 10:13
Je kunt ook een functie bovenaan de pagina zetten die zowel naar de client schrijft als in een file.

in pseudo-code:

code:
1
2
3
4
5
6
7
8
9
10
11
12
Sub Output(Text)
  response.write Text & vbCrLf
  File.WriteLine Text
End Sub

Set File = objFSO.OpenAsTextStream(....)

Output "<HTML>"

Output "</HTML>"

File.Close
Pagina: 1