Programación Web y Scripting > ASP
Actualizar txt desde form ASP
seresac:
Hola,
estoy intentado actualizar un archivo .txt desde un formulario pero de momento no lo consigo. Se trata de que el texto introducido en el form sobreescriba el contenido del txt. Mas que nada porque ese txt alimenta el contenido de un flash
pongo aqui el código por si alguien me quiere echar una mano
form-actualizar.html
<form method="post" action="actualizar.asp">
<label>actualizar datos<br />
<textarea name="text" cols="50" rows="10"></textarea>
</label>
<br />
<br />
<input type="submit" value="Enviar" />
</form>
actualizar.asp
<%
text= Request.Form("text")
set fs = createobject("scripting.filesystemobject")
set wfile = fs.opentextfile("/asp/writefile.txt", ForWriting)
wfile.writeline (text)
wfile.close
set wfile=nothing
set fs=nothing
response.write("txt actualizado")
%>
<h1><div align="center">txt Actualizado</div></h1>
<div align="center"><a href="leer.asp">Visualizar el contenido del txt</a></div>
y para leer el contenido de ese txt uso el siguiente código (que si funciona)
leer.asp
<%
set fs = createobject("scripting.filesystemobject")
filename=server.mappath("/asp/writefile.txt")
set readfile=fs.opentextfile(filename,1,false)
do until readfile.atendofstream
text=readfile.readline
if text="" then
response.write "<p>"
else
response.write text
end if
loop
readfile.close
set readfile=nothing
%>
El error
el error que me da es el siguiente
Error de Microsoft VBScript en tiempo de ejecución error '800a0005'
Argumento o llamada a procedimiento no válidos
/asp/actualizar.asp, línea 9
Y la línea 9 es esta --> set wfile = fs.opentextfile("/asp/writefile.txt", ForWriting)
alguien me puede ayudar? :( :(
Saludos
m0skit0:
Creo que tienes un problema con la ruta, ya que /asp/writefile.txt no es una ruta válida en Windows. Sustitúyela por server.mappath("/asp/writefile.txt"). Saludos.
seresac:
Gracias por contestar,
uhm... pues he modificado el código del actualizar.asp
<%
text= Request.Form("text")
set fs = createobject("scripting.filesystemobject")
filename=server.mappath("/asp/writefile.txt")
set wfile = fs.opentextfile(filename,1,ForWriting)
wfile.close
set wfile=nothing
set fs=nothing
%>
Ahora parece que funciona, pero cuando voy a ver el contenido del archivo .txt, resulta que no ha sobreescrito nada de nada :huh:
he verificado los permisos del archivo de texto, son 666 (escritura y lectura) asi que no tendria que fallar :hitcomp:
alguna idea?
F_Tanori:
--- Código: Visual Basic ---<% text= Request.Form("text")set fs = createobject("scripting.filesystemobject") filename=server.mappath("/asp/writefile.txt")set wfile = fs.opentextfile(filename,1,ForWriting) wfile.closeset wfile=nothingset fs=nothing %>
ForWriting no esta definido
Por ninguna parte se ve en donde escribas el contenido del archivo
Prueba de esta manera a ver si te sirve... (no esta probado porque no tengo las herramientas por ahora :P)
--- Código: Visual Basic ---<%' Const ForWriting = 8 'Declara la constante o utiliza el valor directo text= Request.Form("text")set fs = createobject("scripting.filesystemobject") filename=server.mappath("/asp/writefile.txt") set wfile = fs.opentextfile(filename,1,8) 'ForWriting = 8wfile.write text '<---- Escribir en el archivowfile.close set wfile=nothingset fs=nothing %>
Saludos
seresac:
hola, gracias por tu respuesta,
he probado lo que me comentabas y ahora me sale el siguiente error
Error de Microsoft VBScript en tiempo de ejecución error '800a0036'
Modo de archivo incorrecto
/asp/actualizar.asp, línea 15
y la línea 15 es --> wfile.write text
que no puede escribir entiendo. He verificado los permisos del .txt y son 666 (lectura y escritura). En principio no tendria que fallar verdad?
Alguna idea?
Navegación
[#] Página Siguiente
Ir a la versión completa