【问题标题】:ASP form action file (FileSystemObject)ASP 表单动作文件 (FileSystemObject)
【发布时间】:2010-07-12 18:23:38
【问题描述】:

我的代码可以在表单中发布一个 javascript 数组:

<form id="my_form" action="file:///C:/Users/John/Desktop/jquery/savetext.aspx" method="post" onsubmit="return prepare()">
<input type="text" id="file_name" name="file_name" rows="1" cols="20" />
<input type="hidden" name="seatsArray" />
<input type="submit" value="Save" />
</form>

<script type="text/javascript">
function prepare();
{
document.getElementById('seatsArray').value = seatsArray.join();
return true;
}
</script>

任何人都可以帮助我解决我需要的 savetext.aspx 操作文件,因为我对 ASP.NET 的了解很少(我习惯于 PHP,但这个需要是 ASP.NET)。

我想我可以在附近找到一些地方:

<%@ Page Language="C#" %>
<script runat="server">
using System;
using System.IO;

class Test 
{
public static void Main() 
{
    string path = "file:///C:/Users/John/Desktop/jquery/txtfiles/" + request.form("file_name");
    if (!File.Exists(path)) 
    {
        using (StreamWriter sw = File.CreateText(path)) 
        {
            sw.WriteLine(request.form("seatsArray"));
            sw.WriteLine("");
        }   
    }

    using (StreamReader sr = File.OpenText(path)) 
    {
        string s = "";
        while ((s = sr.ReadLine()) != null) 
        {
            Console.WriteLine(s);
        }
    }
}
}
</script>

我走对了吗?

非常感谢!

【问题讨论】:

  • 那么,您希望有人为您完成工作吗?你得问得好一点。顺便说一句,.asp 不是 ASP.NET。
  • 我只需要一点代码来完成这该死的事情。否则我将不得不花费数周的时间来学习如何事先做到这一点。哦,我没有意识到有区别。它是 ASP.NET,我需要具体说明。
  • 我并不是要粗鲁,但是如果不学习这种语言,您为什么需要用您不精通的语言做某事?
  • 为什么不按正常方式使用表格? (通过定义方法和操作并使用普通按钮提交?

标签: asp.net javascript forms post action


【解决方案1】:

我认为您应该按预期使用表单,只需将数组数据添加到隐藏元素..

<form id="my_form" action="http://my_site/savetext.aspx" method="post" onsubmit="return prepare()">
  <input type="text" id="file_name" name="file_name" rows="1" cols="20" />
  <input type="hidden" name="seatsArray" />
  <input type="submit" value="Save" />
</form>

<script type="text/javascript">
function prepare();
{
  document.getElementById('seatsArray').value = seatsArray.join();
  return true;
}
</script>

在服务器端使用request.form("file_name")request.form("seatsArray")

【讨论】:

  • 这看起来更明智,谢谢。我会更新我原来的问题。我做的动作文件大概都放错地方了吧?你能告诉我需要改变什么吗?谢谢
  • @IceDragon,尝试使用开头没有file:/// 的路径.. 只是带有反斜杠而不是斜杠的普通本地路径string path = "C:\Users\John\Desktop\jquery\txtfiles\" + request.form("file_name"); 如果您遇到错误,请告诉我们,并检查查看路径变量是否按照您想要的方式填充..
  • @IceDragon,哦,我想我是 C#,你需要使用 Request.Form[ "file_name" ]。括号[] 不是括号() ..
  • @Gaby,我添加了你的代码。路径变量似乎很完美(使用指定名称创建文本文件)。但是,该文件为空,因此未将 seatArray 写入文件。知道为什么吗?谢谢
  • 括号也应该用于座位数组(如果你错过了)。 Request.Form[ "seatsArray" ] 如果你调试应用程序,seatsArray 是否包含任何内容?
【解决方案2】:

您需要使用 Stream 类。这是使用 VB.NET 在 ASP.NET 中编写/创建文本文件的简短代码。

    Dim strStreamW As Stream
    Dim strStreamWriter As StreamWriter
    Try
      Dim ds As New DataSet
      Dim FilePath As String = "C:\nombreArchivo.txt"

      'Open the file, if not exists create it
      strStreamW = File.OpenWrite(FilePath)
      strStreamWriter = New StreamWriter(strStreamW, _
                    System.Text.Encoding.UTF8)

   'Using a conection with the db
   ds = Negocios.TraerDatosArchivo()

   Dim dr As DataRow
   Dim Nombre as String = ""
   Dim Apellido as String = ""
   Dim Email as String = ""

   For Each dr In ds.Tables(0).Rows
     'Get the recordset
      Nombre = CStr(dr("Nombre"))
      Apellido = CStr(dr("Apellido"))
      Email = CStr(dr("Email"))

      'Write the line in the file or "stream"
      strStreamWriter.WriteLine(Nombre & " " & Apellido & " - " & Email)

    Next
    strStreamWriter.Close()

    Catch ex As Exception

      strStreamWriter.Close()

      MsgBox(ex.Message)

  End Try

【讨论】:

  • 我明白这一点,但我的问题是如何根据用户在文件名框中提交的内容命名 txt 文件以及如何在文件中写入数组的内容。谢谢
猜你喜欢
  • 2010-11-27
  • 2011-02-16
  • 1970-01-01
  • 2010-10-25
  • 1970-01-01
  • 2013-05-29
  • 1970-01-01
  • 1970-01-01
  • 2016-11-16
相关资源
最近更新 更多