[英]Convert System.Byte[] to HTML Input type=“FILE”
我需要保留已发布文件的数据,因为在POST上发生验证错误的情况下,并且页面重新加载时,用户不需要再次发布文件,因为可能有很多。 但是,如何将System.Byte []转换为html输入中的发布文件?
实际上我在Controller.cs中这样做:
var binaryReader = new BinaryReader(
HttpContext.Current.Request.Files["INPUT_NAME"].InputStream))
将我的HttpPostedFileBase转换为BinaryReader之后,我在ViewModel属性(campo.ByteArray)上设置了值,顾名思义,其Byte []类型:
campo.ByteArray =
binaryReader.ReadBytes(
HttpContext.Current.Request.Files["INPUT_NAME"].ContentLength);
然后将其发送到我的View.cshtml,并尝试将此值设置为input [type = file],如下所示:
<input type="file" name="INPUT_NAME" id="INPUT_NAME" value="@Model.ByteArray"/>
考虑我的@ Model.ByteArray作为使用HttpPostedFileBase在控制器上创建的byteArray。
但是在页面准备就绪时,我的输入[type = file]仍然为空,显示消息“未选择文件”。
有没有办法使之成为可能?
提前致谢!
正如上面@Stephen Muecke所解释的,出于安全原因,我无法这样做:
-出于安全原因,您无法设置文件输入的值。 只能由用户在浏览器中选择一个文件来设置它-如果由于ModelState无效而需要返回视图,请临时保存文件并返回其文件名,以便用户可以查看已经上传的文件。 该插件可能很有趣
感谢大家!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.