Mittels ASP eine Textdatei erstellen

damei2000

Mitglied
Guten Tag

Wie kann ich mit Hilfe von ASP eine Textdatei erstellen?

Mit Hilfe eines Textfeldes sollte ich den Name der Datei angeben können.
Mit Hilfe eines zweiten Textfeldes den Inhalt.


Wie ist das möglich?

Danke
Daniel
 
Hi

kannst du mit FSO und CreateTextfile machen.
Hier ein Beispiel-Script.
Dort wird immer eine höhere Seite angelegt.
Ursprung ist 00001.txt

Du kannst es ja abändern, aber Du musst in dem Fall immer abfragen, ob das File existiert um es dann entweder zu löschen oder zu überschreiben.

Code:
<%@LANGUAGE="VBSCRIPT"%>
<% option explicit %>
<html>
<head>
    <title>neue Textdatei erzeugen</title>
   
</head>
<body>
<form name="form1" method="post" action="<% = Request.Servervariables("script_name")%>">
  <textarea name="kommentar" cols="50" rows="10" style="border:1px dotted black"></textarea>
  <br>
  <input type="submit" name="go" value="go">
</form>
<% 

if Request.Form("Kommentar") <> "" then

dim myPath, path, FolderObject, ListFolder, sAlleDateien
path = "textdateien" 
myPath = Server.MapPath(path) 
Set FolderObject = CreateObject("scripting.FilesystemObject") 
set ListFolder = FolderObject.GetFolder(myPath) 
Set sAlleDateien = ListFolder.Files

' --- Anzahl der im Verzeichnis befindlichen Dateien

dim AnzahlDateien
AnzahlDateien = sAlleDateien.Count

' --- Wenn noch keine Datei vorhanden

Dim neuerName
if anzahlDateien = 0 Then
neuerName= "00001.txt"

' --- ansonsten immer um 1 hochzählen der zuletzt eingefügten Datei
else
dim x, n, f
x=0
For each f in listFolder.files 
n = cint(left(f.name,5))
if n>x then x = n
neuerName = right("0000" & (x+1),5) & ".txt"
next 
end if

Response.write "Anzahl der vorhandenen Dateien: " & AnzahlDateien & "<br>"
Dim objTextStream
Set objTextStream = FolderObject.CreateTextFile _
                            ( _
                            Server.MapPath ("textdateien/" & neuerName & "" ))
' --- Einfügen des Textes

Dim strFileContent
    strFileContent = Replace(Request("Kommentar"),vbcrlf,"<br>")
    objTextStream.Write strFileContent
    Response.Write "<br>Die Datei " & neuerName & " wurde erzeugt <br>und beinhaltet folgenden Text:<br><br>"
	objTextStream.Close

set sAlleDateien = nothing
Set objTextStream = Nothing
Set FolderObject    = Nothing 
Server.Execute "Textdateien/" & neuerName
end if
%>
</body>
</html>

Wichtig ist allerdings, dass die Schreibrechte auf dem Verzeichnis liegen. Sonst kann man keine Textdatei erzeugen.
 
Zuletzt bearbeitet:
Hallo

Ich will in etwa das gleiche machen, jedoch möchte ich, dass das .txt File nicht auf dem Webserver gespeichert wird, sondern dass es an den Browser gesendet wird, sprich der Benutzer wird gezwungen das .txt lokal zu öffnen resp. zu speichern. Ist das möglich?

Besten Dank schon mal für alle Tipps!
 
Hi

hierfür erzeugst Du die Datei und beschreibst sie.
Wenn sie direkt geöffnet werden soll, dann leitest Du weiter via Redrirect oder halt einen LInk setzen.

Code:
<%
dim thema
thema = "Dies ist eine Textdatei"
Set fso = CreateObject("Scripting.FileSystemObject") 'Dateiobjekt erzeugen
Set f = fso.CreateTextFile(server.mappath("thema.rtf"),true) 'Dateiobjekt benutzen um neue Datei anzulegen
f.write thema
set fso = nothing
set f = nothing
Response.redirect "thema.rtf"
%>
 

Neue Beiträge

Zurück