2010-07-12 59 views
1

我有我的代码张贴在表单中的JavaScript数组:ASP形式的操作文件(FileSystemObject的)

<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> 

我在正确的轨道上?

非常感谢!

+0

所以,你想要有人为你做你的工作吗?你必须更好地问。顺便说一句,.asp不是ASP.NET。 – 2010-07-12 18:31:13

+0

我只需要一些代码来完成这个该死的事情。否则,我将不得不花费数周时间来学习如何预先做好。哦,我没有意识到有什么不同。这是ASP.NET我需要具体。 – IceDragon 2010-07-12 18:35:38

+0

我的意思不是粗鲁,但为什么你需要用你不熟练的语言来做某些事情,而不学习语言? – 2010-07-13 14:33:30

回答

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")

+0

这看起来更合理,谢谢。我会更新我原来的问题。我所做的动作文件可能都在错误的地方?你能告诉我什么需要改变?谢谢 – IceDragon 2010-07-14 02:52:49

+0

@IceDragon,尝试在开始处使用不带'file:///'的路径..只是一个带反斜杠而不是斜杠的普通本地路径 ''''''' txtfiles \“+ request.form(”file_name“);'告诉我们,如果你得到一个错误,并检查路径变量是否得到你想要的方式填充.. – 2010-07-14 08:50:21

+0

@IceDragon,哦,我想我C#你需要使用'Request.Form [“file_name”]'。括号'[]'不括号'()'.. – 2010-07-14 08:54:05

0

您需要使用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 
+0

我明白,但我的问题是关于如何根据用户在file_name框中提交的内容命名txt文件以及如何在文件数组的内容。谢谢 – IceDragon 2010-07-12 21:20:46