以可读格式发送回文件
Send file back in a readable format?
我希望有人能对此有所了解。令我懊恼的是,我意识到IE8和IE9等浏览器不支持任何类型的文件阅读器。
因此,经过一些研究,我试图让服务器读取文件的内容,将其转换为base64,然后将其发送回客户端,javascript从那里获取它。
这可能吗?您建议如何执行此操作?
例如,现在我已经设置了一个 RESTful 服务,该服务在提交表单后获取文件......
public string Post()
{
string readableFile="";
HttpResponseMessage result = null;
var httprequest = HttpContext.Current.Request;
if (httprequest.Files.Count > 0)
{
foreach (string file in httprequest.Files)
{
var postedFile = httprequest.Files[file];
//convert to base64? somehow?
}
}
return readableFile;
}
postedFile 变量包含文件信息,我只需要将其转换为可读格式......虽然,我遇到了困难。
任何想法或帮助将不胜感激!
HttpPostedFile
类有一个可用于读取数据的 InputStream
属性。 若要将该数据隐藏为 base64 字符串,可以执行以下操作:
public string Post(HttpPostedFile file)
{
if (file.InputStream.Length > Int32.MaxValue) // Or some other file length limitation
throw new HttpResponseException(HttpStatusCode.BadRequest);
int length = (int)file.InputStream.Length;
byte[] buffer = new byte[length];
file.InputStream.Read(buffer, 0, length);
string encodedString = Convert.ToBase64String(buffer);
return encodedString;
}
如果你想支持超过 4GB 的较大文件,你必须以显着不同的方式编码它,但我假设你想对文件大小设置一个合理的限制,以避免出现内存不足异常或不得不将文件缓存到硬盘驱动器。
你正在寻找 C#,对吧?
string sixtyfour = System.Convert.ToBase64String(
myFileUploadControl.FileBytes,
0,
myFileUploadControl.FileBytes.Length);
这应该获取文件上传控件的内容并将其放入 base64 中。
相关文章:
- Javascript回文逻辑
- 如何创建一个函数来检查日期是否为回文
- 如何检查字符串是否为回文JavaScript〔CLOSED!〕
- 用于回文变位的JavaScript解决方案
- 我在javascript中遇到了一个回文函数的问题
- 过滤并保存回HAR文件
- 用分裂和反转的逻辑理解回文代码
- 一根绳子可以有回文吗,有没有更好的方法可以做到这一点
- 回文程序 - 意外的标识符错误
- 如何创建一个接受输入的函数并测试它是否是回文
- JavaScript 检查回文(包括空格和标点符号)
- 更高效的回文代码
- Javascript中最大的回文产品
- 如何在JavaScript中回文这个字符串
- 检查字符串数组中的回文的运行时
- 替换非字母数字字符以使用 javascript 检查回文
- 我该如何修复这个回文检查器
- 为回文函数调试 JavaScript
- 为什么javascript不会写回html文件
- 字符串中最长的回文