Asp.net mvc 从ASP.NET MVC XMLHttpRequest上载后Pdf缺少签名

Asp.net mvc 从ASP.NET MVC XMLHttpRequest上载后Pdf缺少签名,asp.net-mvc,pdf,digital-signature,Asp.net Mvc,Pdf,Digital Signature,我正在开发一个ASP.NETMVC页面,允许用户在数字签名后上传Pdf文档。 但由于某些原因,即使文档的图形表示正确显示,在上载文档时签名也会被销毁。 以下是我用来上传文件的代码: $(document).on('click', 'input[value=Upload]', function (e, argument) { var formdata = new FormData(); for (i = 0; i < document.getEleme

我正在开发一个ASP.NETMVC页面,允许用户在数字签名后上传Pdf文档。 但由于某些原因,即使文档的图形表示正确显示,在上载文档时签名也会被销毁。 以下是我用来上传文件的代码:

    $(document).on('click', 'input[value=Upload]', function (e, argument) {
        var formdata = new FormData();
        for (i = 0; i < document.getElementById('FileBox').files.length; i++) {
            formdata.append(document.getElementById('FileBox').files[i].name, document.getElementById('FileBox').files[i]);
        }

        var url = '@Url.Action("Upload", "Test")'

        var xhr = new XMLHttpRequest();
        xhr.open('POST', url);
        xhr.send(formdata);
        xhr.onreadystatechange = function () {
            if (xhr.readyState == 4 && xhr.status == 200) {
                var response = $.parseJSON(xhr.response);
                alert(response.result);
            }
        }
    });

在SQL server数据库中持久化字节数组后,当我从数据库中取回它们时,不再有任何签名,只有它的图形表示。

感谢Mkl的评论,我意识到我没有收到签名,因为文档显示在浏览器中。在Acrobat Reader中打开持久化文件成功显示签名。

在SQL server数据库中持久化字节数组后,您观察到了问题;您是否检查了在持久化到数据库之前由
PostedFiles()
返回的文件是否已经存在该问题?如果他们没有,你就用错误的密码寻找罪犯。
Public Function PostedFiles() As List(Of Byte())
    Dim retval As New List(Of Byte())
    Dim oRequest As HttpRequest = Web.HttpContext.Current.Request
    For Each sFileKey As String In oRequest.Files
        Dim oFile As HttpPostedFile = oRequest.Files(sFileKey)
        If oFile.ContentLength > 0 Then
            Dim iLength As Integer = oFile.ContentLength
            Dim oBytes(iLength) As Byte
            Dim oStream As System.IO.Stream = oFile.InputStream()
            oStream.Read(oBytes, 0, iLength)
            retval.Add(oBytes)
        End If
    Next
    Return retval
End Function