.Net 2.0 接收到的 tiff 文件图像是倒置的
.Net 2.0 the received tiff file images are inverted
我认为主要涉及网络的问题。
我用扫描仪创建了一个 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 上的托管是因为旧代码仍然需要在客户端支持并且不能轻易升级。
以上是我能说出的唯一区别。
有人对此有更好的想法吗?
为什么会这样?如何解决?
谢谢
我的建议是尝试其他压缩方法。我认为这与数据的二进制传输有关
我认为主要涉及网络的问题。
我用扫描仪创建了一个 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 上的托管是因为旧代码仍然需要在客户端支持并且不能轻易升级。
以上是我能说出的唯一区别。
有人对此有更好的想法吗?
为什么会这样?如何解决?
谢谢
我的建议是尝试其他压缩方法。我认为这与数据的二进制传输有关