好的,我有一个应用程序将文本文件上传到Web服务器,一切正常。 但是,下载文本文件时会神奇地出现一行
示例:
textfile contains = Hello World
downloaded textfile contains = //notice the blank line here
Hello World
通常这不会有问题,因为我只是创建一个临时文件并删除该行。
但是,由于文本文件包含加密数据,并且如果我创建一个新的临时文件来删除该行,它会完全混淆加密文本并创建 “错误数据”和“要解密的数据长度无效”错误。
我几乎100%确定它不是我的加密算法,因为文本文件在上传之前输出,并且在未上传的文本文件上工作正常。
如果你们能帮助我,那将是非常棒的。任何工作都会做(无论多么可怕/讨厌)。
答案 0 :(得分:0)
服务器和客户端是否运行相同的家庭操作系统?我认为这可能是由于换行序列差异,以及以不同模式(文本/二进制)上传和下载。
如果数据已加密或加密签名,您希望尽一切可能确保传输以二进制模式完成。
答案 1 :(得分:0)
有两个原因会发生这样的事情。
检查两个代码并发布一些样本,如果你实际操作它。我用c#上传了文件,效果很好。
您应该检查Hanselman's blog以获取简单的上传应用程序......这是直截了当的。
答案 2 :(得分:0)
下载代码是什么样的?
猜测:你是Response.Write()
文本,没有Response.Clear()
来清除任何“aspx文本”。此外,您需要以Response.End()
结束代码,以防止进一步添加文本。
答案 3 :(得分:0)
看起来您的加密算法会使用空终止字符串附加您的文本。
尝试在网络服务器上以字节数组加载文本文件,并查看最后一个字节是否为'\ 0'。