繁体   English   中英

将System.Byte []转换为HTML Input type =“ FILE”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM