簡體   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