我需要创建一个部分,将文件作为二进制数据直接上传到数据库,我的门户网站使用AngujarJS构建并发布到我的Web API
有没有人有任何示例或给我一个想法如何解决这个问题:从c#角度上传和下载这些文件?我已经构建了我的数据库和3个存储过程,InsertDocuments,GetDocuments和GetDocument
答案 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();
}