Problema con ASP y TextStream

Hola, expertos:
Tengo un problema la mar de raro, mirad el siguiente código en ASP:
------
dim fso,tf,mStr,x,c
mStr=cStr(Request.Form("dvtxt"))
set fso=server.CreateObject ("Scripting.FileSystemObject")
set tf=fso.CreateTextFile("mm_items.txt",true)
Response.Write mStr
tf.Write mStr
tf.Close()
set tf=nothing
set fso=nothing
----
Esto debe recoger en la variable mStr el contenido del campo "dvtxt" de un formulario enviado a la página mediante un POST, enviar el contenido de mStr al cliente, y luego guardarlo en un fichero.
Pues bien, el contenido de la variable llega al cliente, pero ¡No se graba en el fichero!.
Lo curioso es que, si inicializo la variable con algún valor, en lugar de leerla de Request.Form, sigue enviando el valor correctamente al cliente, pero también lo graba en el fichero.
Conclusión: Sólo no lo graba en el fichero si cojo el valor de la colección Form del objeto Request.
¿Alguien sabe porqué ocurre esto? Pero, más importante ¿Alguien sabe cómo solucionarlo?
Gracias anticipadas

1 Respuesta

Respuesta
1
<%
dim fso,tf,mStr,x,c
mStr= request.form("dvtxt")
set fso=server.CreateObject("Scripting.FileSystemObject")
set tf=fso.CreateTextFile("c:\\inetpub\\wwwroot\\directorio\\mm_items.txt",true)
tf.Write mStr
tf.Close()
set tf=nothing
set fso=nothing
%>
Lo único que he modificado es quitar la linea del response. Write, y adicionar la ruta completa del archivo txt.
Así como darle permisos al usuario IUSR_NOMBREDETUMAQUINA de escritura sobre el directorio en el que estas creando el archivo.
Saludos,
Alfredo
PD: Si tienes problemas avisa nomas...
El código original pone:
set tf=fso.OpenTextFile(server.MapPath("/admin/shared/")&"\mm_items.txt",2,true)
y no hay ningún Response. Write. El Response lo puse sólo para depurar, una vez vi que no me escribía en el fichero. Con respecto a los permisos, si pongo este código, funciona, así que eso no es:
<%
dim fso,tf,mStr,x,c
set fso=server.CreateObject("Scripting.FileSystemObject")
set tf=fso.CreateTextFile("c:\\inetpub\\wwwroot\\directorio\\mm_items.txt",true)
mStr="Hola, Mundo"
tf.Write mStr
tf.Close()
set tf=nothing
set fso=nothing
%>
El problema es tan surrealista como esto:
mStr=Request.Form("dvtxt")
...
tf.Write mStr & "aeiou"
Response.Write mStr
...
Sólo me guarda en el fichero el "aeiou", a pesar de que el Response me manda el contenido de mStr al cliente correctamente. Es como si la variable mStr sólo estuviese vacía para el TextStream, aunque para todo lo demás contenga un texto.
Saludos
Nada, que he tenido que usar QueryString en lugar de Form... usando el Form da más errores aún, incluido que me entra en un loop a pesar de que la condición de entrada no se cumple, y otras cosas. Para mí que el problema no tiene nada que ver con la programación, y sí con el propio engine ASP.
Gracias por contestar, de todas maneras.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas