Чтение нескольких XML и сохранение двоичных файлов в базе данных ASP.NET - PullRequest
0 голосов
/ 21 марта 2019

Я говорю вам, что я хочу сделать.В asp.net VB я пытаюсь прочитать несколько файлов XML и те же файлы, сохраненные в SQL Server, с помощью одного элемента управления загрузкой файлов (свойство allowmultiple).Значения XML я храню в таблице данных, и после прочтения XML я сохраняю в таблице данных двоичные файлы.Эти данные я храню в viewstate, на случай, если перед отправкой данных на SQL Server я хочу их отредактировать.Подробности в том, что я могу сделать, чтобы заполнить таблицу данными значениями XML, а также сохранить двоичные файлы, но не оба одновременно.Например, если я сначала пытаюсь прочитать xml и сохранить его в таблице данных, он не сохраняет двоичные файлы, но если я пытаюсь сохранить двоичный файл и затем прочитать xml, он не возвращает мне прочитанные значения.У меня есть сомнения и пробовал несколько методов, таких как преобразование строки из двоичного в строку, сохранение всей структуры XML и затем экспортировать ее со стороны клиента.Но я не знаю, связано ли это с состоянием объекта "fileuploead.postedfiles", может быть, мне нужно сериализовать коллекцию файлов или что вы рекомендуете?Если вы можете направить меня или посоветовать мне.Спасибо вам всем.Я делюсь кодом.

Мой контроль загрузки файлов

<asp:FileUpload runat="server"  ID="fuMulXMLPDF" accept="application/pdf | application/xml" AllowMultiple="true"/>

Моя функция для заполнения данных чтением xml и двоичных файлов

For Each upFile As HttpPostedFile In fuMulXMLPDF.PostedFiles
   PRUEBA(upFile)
Next

Деталь PRUEBAфункция

 Public Sub PRUEBA(ByVal posted As HttpPostedFile)
        Dim teibol As New DataTable
        Dim panda As New Panda()

        dt = ViewState("XML")
        Dim filas As DataRow = dt.NewRow

        filas("X_FILENAME") = posted.FileName.ToString
        filas("X_BINARYFILE") = ReadFile(posted)
        'MsgBox(ReadFile(posted).Length)
        filas("X_MIME") = posted.ContentType
        filas("X_SIZE") = posted.ContentLength.ToString
        filas("P_FILENAME") = posted.FileName.ToString
        filas("P_MIME") = posted.ContentType
        filas("P_SIZE") = posted.ContentLength.ToString
        teibol = panda.MenImTheMachoLikeRandy(posted.InputStream)

        For Each row As DataRow In teibol.Rows

            filas("FECHA") = row("FECHA").ToString
            filas("SUBTOTAL") = row("SUBTOTAL").ToString
            filas("TOTAL") = row("TOTAL").ToString
            filas("COMENTARIOS") = txtComments.Text

        Next

        ViewState("XML") = grid.Insert(GridView1,DirectCast(ViewState("XML"),DataTable), filas)
        RecargaGrid1()

    End Sub

Деталь ReadFile Функция

 Private Function ReadFile(ByVal fObj2 As HttpPostedFile) As Byte()
        Dim data() As Byte = New Byte((fObj2.ContentLength) - 1) {}
        fObj2.InputStream.Read(data, 0, fObj2.ContentLength)
        Return data
    End Function

Я благодарю вас за ваше время

...