0
我正在开发一个ASP.NET MVC页面,让用户在数字签名后上传一个PDF文档。 但由于某些原因,即使在正确显示图形表示时,签名在上载文档时也会被破坏。 下面是我用上传文件的代码:从ASP.NET MVC上传后丢失签名XMLHttpRequest
$(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);
}
}
});
我检索在控制器上载的文件,如下所示:
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
在SQL Server数据库持久化的字节数组后,当我从数据库中取回时,不再有任何签名,只是它的图形表示。
您在SQL Server数据库*中持久保存字节数组后观察到问题*;你有没有检查过''PostedFiles()'*返回的文件在持久化到数据库之前是否已经有这个问题?如果他们不这样做,你会在错误的代码中寻找罪魁祸首。 – mkl