繁体   English   中英

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

[英]C# Text File upload and download issue

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

例:

textfile contains = Hello World

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

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

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

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

如果你们能帮助我,那太好了。 任何解决方法都可以(不管它有多恐怖/讨厌)。

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

如果数据是经过加密或加密签名的,则您想做的所有事情都可以确保以二进制模式完成传输。

发生这种情况有两个原因。

  1. 您正在对上传进行一些更改(例如,分析文本和进行一些数据处理,在此介绍了这一行)
  2. 在下载文件之前,您正在阅读文件并对其进行操作...

检查这两个代码,并发布一些示例(如果您实际在使用它)。 我已经使用c#上传了文件,效果很好。

您应该查看Hanselman的博客中是否有简单的上传应用程序……很简单。

下载代码是什么样的?

大胆猜测:您正在使用Response.Write()编写文本,而没有使用Response.Clear()清除任何“ aspx文本”。 另外,您需要该代码以Response.End()结尾,以防止进一步添加文本。

看起来您的加密算法正在将您的文本附加以空终止的字符串。

尝试将文本文件以字节数组的形式加载到Web服务器上,然后查看最后一个字节是否为'\\ 0'。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM