一个主要涉及网络的问题我相信。
我从扫描仪创建一个tiff文件并将其保存在硬盘上(这一切都很完美,直到这里)。 我的下一步是以这种方式将文件上传到服务器(现有的JavaScript代码):
// -----------------------------------------------------------------
// Upload the scanned document to the server and them save it to CM.
// -----------------------------------------------------------------
function SaveToDriveU()
{
try
{
document.body.style.cursor = "wait";
objStream = new ActiveXObject("ADODB.Stream");
objStream.Mode = 3; // read write
objStream.Type = 1; // adTypeBinary
objStream.Open();
objStream.LoadFromFile(strScanedFileName);
//var streamToSend = objStream.Read(objStream.Size);
try
{
streamToSend = objStream.Read(-1);
}
catch(err)
{
alert(err.message);
}
window.setTimeout("SendXmlHttpRequest()",1000);
//objStream.Close();
}
catch (err)
{
alert("???? ????? ?????? ????? ???????:" + err.message);
}
}
//-------------------------------------------------------
// Send XmlHttpRequest
//-------------------------------------------------------
function SendXmlHttpRequest()
{
try
{
objXMLhttp = new ActiveXObject("MSXML2.XMLHTTP");
// Upload the scanned document via XMLHTTP request.
objXMLhttp.Open("POST", "Uploader.aspx", true);
objXMLhttp.setRequestHeader("Content-Length", objStream.Size);
objXMLhttp.setRequestHeader("Content-type","image/tiff");
objXMLhttp.onreadystatechange = function() // Check the upload request status.
{
if(objXMLhttp.readyState == 4)
{
if(objXMLhttp.responseText.substr(0,2) == "OK")
{
document.body.style.cursor = "default";
mstrNewDocID = objXMLhttp.responseText.substr(2,(objXMLhttp.responseText.length - 2));
document.all.NewDocID.value = mstrNewDocID;
Form1.submit();
}
else
{
// If the upload failed, display the error message to the user.
var strPageUrl = "RunScanner/FailedScanMsg.aspx?ErrorMsg=????? ????? ????? ?????";
location.replace(strPageUrl);
}
// Delete the local scanned document from the disk.
DeleteScanedFile();
}
}
objXMLhttp.send(streamToSend);
}
catch (err)
{
alert("???? ????? ?????? ????? ???????:" + err.message);
}
}
现在问题分为两个方向:
托管.Net 4.0一切都很完美。
托管.Net 2.0收到的tiff文件图像被反转(意思是如果图像是白色的黑色,现在它将是白色的黑色)
托管在.Net 2.0上是因为旧代码仍然需要在客户端支持,并且无法轻松升级。
以上是我能说的唯一区别。
有人对此有任何更好的想法吗?
为什么会这样?如何解决?
由于
答案 0 :(得分:0)
我的建议是尝试其他压缩方法。我认为这与数据的二进制传输有关