Web Api将文件上载到数据库 - 二进制数据

时间:2018-04-23 22:13:28

标签: c# angularjs asp.net-web-api

我需要创建一个部分,将文件作为二进制数据直接上传到数据库,我的门户网站使用AngujarJS构建并发布到我的Web API

有没有人有任何示例或给我一个想法如何解决这个问题:从c#角度上传和下载这些文件?我已经构建了我的数据库和3个存储过程,InsertDocuments,GetDocuments和GetDocument

1 个答案:

答案 0 :(得分:0)

从AngularJS方面,您需要将数据发布为FormData()并将您的文件附加到此表单。

HTML

<input type="file" id="inputFile" name="inputFile" >

JS

var formData = new FormData();
var selectedFiles = $("#inputFile").get(0).files
formData.append('DocumentFile', selectedFiles[0]);

$http.post(serviceUrl, formData, {
    headers: {
        'Content-Type': undefined
    }
}).then(function successCallback(response) {
    // on success
}, function errorCallback(response) {
   // on error
});

从Web API方面,您可以从HttpContext.Current.Request.Files

获取这些文件
[HttpPost]
public IHttpActionResult AddFile()
{
    var request = HttpContext.Current.Request;

    if (request.Files.Count > 0)
    {
        for (int i = 0; i < request.Files.Count; i++)
        {
            Stream stampStream = request.Files[i].InputStream;
            Byte[] stampBytes = new Byte[stampStream.Length];
            // Save only file name to your database
        }
    }

    return Ok();
}