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