在发送到客户端之前创建存档并在其中添加文件

时间:2015-10-20 13:22:42

标签: node.js express

我想用archiver创建一个存档并在其中放入一些文件。客户方,用户将点击一个按钮,它将生成存档(服务器端)。

我正在使用Express.js,这是我的服务器端代码,其中将生成存档。我做了这样的事情:

            'Creating XML file first...
        Dim objWriter As New System.IO.StreamWriter(IO.Directory.GetCurrentDirectory & "\PROFILE.xml")

        objWriter.WriteLine("<COMPELATION>")
        objWriter.WriteLine("</COMPELATION>")
        objWriter.Close()

        'Writing XML content...
        Dim xmldoc As XmlDocument = New XmlDocument()
        xmldoc.Load(IO.Directory.GetCurrentDirectory & "\PROFILE.xml")

        With xmldoc.SelectSingleNode("/COMPELATION").CreateNavigator().AppendChild()
            .WriteStartElement("DATA")
            .WriteElementString("PROJECTID", TextBox1.Text)
            .WriteElementString("CLIENTID", ComboBox1.SelectedText)
            .WriteElementString("CDATE", Date.Today)
            .WriteElementString("CTIME", Now.ToShortTimeString)

            .WriteEndElement()
            .Close()
        End With
        xmldoc.Save(IO.Directory.GetCurrentDirectory & "\PROFILE.xml")

        Dim filepath As String = (IO.Directory.GetCurrentDirectory & "\PROFILE.xml")
        Dim DS_PROJECTS As New DataSet
        DS_PROJECTS.ReadXml(filepath)
    End If

这对我来说是全新的,我想了解为什么控制台告诉我流文件是空的?

错误:追加:条目名称必须是非空字符串值     在Archiver.append

此致

1 个答案:

答案 0 :(得分:1)

你只能追加一个readStream,因为存档只能从readstream中获取数据。您可以使用名为archive.append的方法,并且应该使用name属性作为第二个参数传递以命名该文件。像这样:

archive.append(myReadStream,{ name : 'myTest.txt'});