C#文本文件上传和下载问题

时间:2011-02-28 13:49:26

标签: c# upload line

好的,我有一个应用程序将文本文件上传到Web服务器,一切正常。 但是,下载文本文件时会神奇地出现一行

示例:

textfile contains = Hello World

downloaded textfile contains =                //notice the blank line here
                      Hello World

通常这不会有问题,因为我只是创建一个临时文件并删除该行。

但是,由于文本文件包含加密数据,并且如果我创建一个新的临时文件来删除该行,它会完全混淆加密文本并创建 “错误数据”和“要解密的数据长度无效”错误。

我几乎100%确定它不是我的加密算法,因为文本文件在上传之前输出,并且在未上传的文本文件上工作正常。

如果你们能帮助我,那将是非常棒的。任何工作都会做(无论多么可怕/讨厌)。

4 个答案:

答案 0 :(得分:0)

服务器和客户端是否运行相同的家庭操作系统?我认为这可能是由于换行序列差异,以及以不同模式(文本/二进制)上传和下载。

如果数据已加密或加密签名,您希望尽一切可能确保传输以二进制模式完成。

答案 1 :(得分:0)

有两个原因会发生这样的事情。

  1. 您正在对上传进行一些更改(例如解析文本和一些数据操作,在此处引入此行)
  2. 您正在阅读该文件并在下载之前进行操作...
  3. 检查两个代码并发布一些样本,如果你实际操作它。我用c#上传了文件,效果很好。

    您应该检查Hanselman's blog以获取简单的上传应用程序......这是直截了当的。

答案 2 :(得分:0)

下载代码是什么样的?

猜测:你是Response.Write()文本,没有Response.Clear()来清除任何“aspx文本”。此外,您需要以Response.End()结束代码,以防止进一步添加文本。

答案 3 :(得分:0)

看起来您的加密算法会使用空终止字符串附加您的文本。

尝试在网络服务器上以字节数组加载文本文件,并查看最后一个字节是否为'\ 0'。