我正在使用C#编写IIS Web服务(在asmx
文件中),该文件将文件作为输入并将其移动到特定的服务器目录。
我目前正在做的是,在调用Web服务之前,我将此文件转换为Base64
字符串,并将此Base64
类型字符串传递给Web服务。 Web服务将字符串转换为文件并将其保存到目录中。
有更好的做法吗?
答案 0 :(得分:0)
正如L.B在评论中指出的那样;
Web服务(托管在.asmx中)使用基于xml / soap的协议,这意味着 每个二进制数据都必须转换为文本(base64,十六进制字符串等)。 )手动或自动。
所以最好的方法就是我从一开始就这样做。这是我使用的代码;
将文件转换为Base64
类型字符串;
byte[] bytes = File.ReadAllBytes("file path");
string file = Convert.ToBase64String(bytes);
将Base64
字符串转换回文件;
byte[] bytes = Convert.FromBase64String(b64Str);
File.WriteAllBytes(path, bytes);