我正在使用文件上传选项上传文件。我直接用 POST 方法将此文件从视图发送到控制器,例如,
[HttpPost]
public ActionResult Page2(FormCollection objCollection)
{
HttpPostedFileBase file = Request.Files[0];
}
假设我正在上传一个记事本文件。我如何读取此文件并将此文本附加到字符串生成器,而不保存该文件......
我知道之后SaveAs
这个文件,我们就可以读取这个文件。但是我如何读取这个文件HttpPostedFileBase
没有保存?
这可以使用以下方法完成httpPostedFileBase类返回HttpInputStream 对象按照规定here http://msdn.microsoft.com/en-us/library/system.web.httppostedfilebase%28v=vs.100%29.aspx
您应该将流转换为字节数组,然后您可以读取文件内容
请参考以下链接
http://msdn.microsoft.com/en-us/library/system.web.httprequest.inputstream.aspx http://msdn.microsoft.com/en-us/library/system.web.httprequest.inputstream.aspx]
希望这可以帮助
UPDATE :
从 HTTP 调用获得的流是只读的顺序流
(不可查找)并且 FileStream 是可读/写可查找的。你会
首先需要将 HTTP 调用的整个流读入一个字节
数组,然后从该数组创建 FileStream。
取自here https://stackoverflow.com/questions/13119863/unable-to-cast-object-of-type-system-web-httpinputstream-to-type-system-io-fi
// Read bytes from http input stream
BinaryReader b = new BinaryReader(file.InputStream);
byte[] binData = b.ReadBytes(file.ContentLength);
string result = System.Text.Encoding.UTF8.GetString(binData);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)