jQuery从type=";读取字节[];文件";提交时的输入框
我有一个自定义输入字段,我想在其中上载一个文件jQuery从type=";读取字节[];文件";提交时的输入框,jquery,html,asp.net-core-mvc,Jquery,Html,Asp.net Core Mvc,我有一个自定义输入字段,我想在其中上载一个文件 <form class="submitform"> <div class="input-group"> <input type="file" class="custom-file-input" id="fileInput" aria-describedby="fileInput" /> <label class="
<form class="submitform">
<div class="input-group">
<input type="file" class="custom-file-input" id="fileInput"
aria-describedby="fileInput" />
<label class="custom-file-label" for="fileInput">Choose file</label>
</div>
<div class="modal-footer row">
<button type="submit" class="btn btn-primary" id="submitAddFile">Submit</button>
</div>
</div>
</form>
然后我就没什么进展了。。从调试过程中我可以看到,我并没有得到任何可以提取并发送到控制器的字节[]。然而,我能够得到一些东西,比如文件大小和文件名
因此,如何正确提取字节[],以便将其存储在数据库中您可以使用表单提交或使用ajax发布表单,并在操作中使用
ifformfile
接收您的文件。在操作中,您可以获取文件名或将文件转换为字节[]
操作参数的名称必须与表单数据的名称匹配
例如:
Js:
你把事情复杂化了。只需将文件发送到服务器(通过提交表单或AJAX),您的ASP.Net操作将为您处理文件的二进制数据,您只需将其保存在某个位置。对,不妨这样做!这是什么类型的帖子?你有没有可能对此提供更多的解释?当然,如何用一个简单的表单(你现在已经有了)来完成它。是如何使用jQuery AJAXBut实现的,但这在.NETCore中有效吗?
Request.File
方法在此处不可用。我也试过这么做,但我还是没有击中我的控制器。谢谢!你能告诉我你为什么要用MemoryStream吗?在哪些情况下,这是必要的?我看它行得通without@Jeppe克里斯滕森指的是。或者可以使用任何其他方法将文件转换为字节[]。
$('#submitAddFile').click(function () {
var file = $('#fileInput')[0].files;
debugger;
}
<script>
$('#submitAddFile').click(function (e) {
e.preventDefault();
var file = $('#fileInput')[0].files;
var formData = new FormData();
formData.append("myFile", file[0]);
$.ajax({
type: "POST",
url: "/Home/UploadFile",
contentType: false,
processData: false,
data: formData,
success: function (result) {
alert("success");
},
error: function () {
alert("there was an error");
}
});
})
</script>
[HttpPost]
public void UploadFile(IFormFile myFile)
{
var fileName = Path.GetFileName(myFile.FileName);
using (var ms = new MemoryStream())
{
myFile.CopyTo(ms);
byte[] fileBytes = ms.ToArray();
//save fileName and fileBytes into database
}
}