这适用于具有C#后端的Web应用程序。它的架构方式我无法将其中一个类导入另一个类直接调用该方法。不幸的是,我们的构建过程出了问题,所以我无法调试这段代码,因此我希望尽可能少地进行迭代。
在一个控制器中我们有这个方法:
[Route("api/uploadFile/{id}")]
[HttpPost]
[CustomAuthorize]
[SwaggerResponse(HttpStatusCode.OK, Description = "File upload successful")]
[SwaggerResponse(HttpStatusCode.InternalServerError, "Error uploading file")]
public async Task<IHttpActionResult> PostFile(int id, [FromUri]bool replace=false)
{
//code to put the file in the database;
}
我需要弄清楚如何从不同的控制器调用它。这两个控制器分为两个完全独立的项目,彼此之间并不了解。
我尝试了以下几种变体,但每次更改在构建过程中大约需要8分钟,因此我不想再破解它了:
HttpClient htc = new HttpClient();
HttpContent content = new StreamContent(myfile);
var response = await htc.PostAsync(this.Url.Content("~/api/uploadFile/9992"), content);
var responseString = await response.Content.ReadAsStringAsync();
答案 0 :(得分:0)
因为它在同一服务器上执行所有反射都可以工作。
首先,我将post文件逻辑移到一个单独的方法中。
然后从那里获得对程序集的引用我们就这样做了:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>
<html lang="en" ng-app='myApp'>
<head>
<meta charset="UTF-8">
<title>Angular Base64 Upload Demo</title>
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
<link rel="stylesheet" href="style.css">
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular.min.js"></script>
<script type="text/javascript" src="//cdn.rawgit.com/adonespitogo/angular-base64-upload/master/src/angular-base64-upload.js"></script>
<script type="text/javascript" src="app.js"></script>
</head>
<body>
<div ng-controller="UpLoadImage">
<img style="height: 100px; width: 100px" ng-src="{{preview}}" alt="preview image">
<label for="file">Select File</label>
<input ng-model="file" type='file' ng-model-instant name='file' id='fileinput' accept='image/*' onchange='angular.element(this).scope().first(this)' /> {{uploadError}}
<button ng-click="addImage()">Add image</button>
<div ng-repeat="slot in slots">
<img style="height: 100px; width: 100px" ng-src="{{slot.base_image}}" alt="preview image">
</div>
<button ng-click="SaveImage()">Save</button>
</div>
</body>
</html>