我想使用网络服务将文件从网站推送到浏览器。我当前正在将文件读入 base64 字节数组,并从 Web 服务返回该文件。这个网络服务是从网站调用的,我一直在思考如何将其作为原始文件推送到浏览器。理想情况下,我想将字节数组读入内存流,然后如果可能的话将其写入响应流,以便最终用户只需下载文件。
首先,让您的 Web 服务简单地返回文件的字节数组,而不是发送 Base64 字节数组。Response.OutputStream.Write()
会自动对您的字节进行 Base64 编码,因此您也可以在内存流中对它们进行未编码。
其次,您需要的不仅仅是字节。您将需要与该文件关联的元数据。对于下面的代码片段,我已将所有元数据放入一个单独的类(名为“file”的本地实例)中。然后,一旦获得所需的数据,只需使用此代码片段:
Response.Clear();
Response.ClearHeaders();
Response.ContentType = file.ContentType;
Response.AddHeader("Content-Disposition", "attachment; filename=\"" + file.FileName + "\"");
Response.AddHeader("Content-Length", file.FileSize.ToString());
Response.OutputStream.Write(file.Bytes, 0, file.Bytes.Length);
Response.Flush();
Response.End();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)