【问题标题】:Web Api upload files to database - Binary Data [duplicate]Web Api将文件上传到数据库-二进制数据[重复]
【发布时间】:2018-10-04 01:35:01
【问题描述】:

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

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

【问题讨论】:

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


【解决方案1】:

在 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();
}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-08
  • 2019-05-04
  • 1970-01-01
  • 1970-01-01
  • 2013-09-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多