通过asp.net mvc中的ajax上传带有其他参数的文件

Pra*_*dha 5 c# asp.net ajax asp.net-mvc json

我正在使用c#在asp.net mvc中工作.

我想上传从文件浏览器窗口中选择的图像,该图像包含在表单标记内.

<form id="uploader" method="post" enctype="multipart/form-data">
 <input type="file" name="file" id="fileInput"/>
Run Code Online (Sandbox Code Playgroud)

在同一个视图中,我有其他字段不是表单的一部分.我通过ajax将它们转换为JSON对象发送这些字段.随着这个我想添加图像也...请帮助我做这个...

Tom*_*son 0

如果您想通过 AJAX 发送文件,可以使用 HTML5 FileReader API。

https://developer.mozilla.org/en-US/docs/Using_files_from_web_applications

该 API 允许您读取文件的内容(来自https://developer.mozilla.org/en-US/docs/Web/API/FileReader):

FileReader.readAsArrayBuffer()

开始读取指定 Blob 的内容,完成后,结果属性包含一个表示文件数据的 ArrayBuffer。

FileReader.readAsBinaryString()

开始读取指定 Blob 的内容,完成后,结果属性包含文件中的原始二进制数据作为字符串。

FileReader.readAsDataURL()

开始读取指定 Blob 的内容,完成后,结果属性包含表示文件数据的 data: URL。

FileReader.readAsText()

开始读取指定 Blob 的内容,完成后,结果属性包含文件内容作为文本字符串。

然后,您可以将文件内容作为 Base64 编码字符串与您拥有的所有其他数据一起发送。

请注意,这仅适用于 IE10+ 和其他现代浏览器。