Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery从type=";读取字节[];文件";提交时的输入框_Jquery_Html_Asp.net Core Mvc - Fatal编程技术网

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
        }       

    }