0

我的 API 控制器有一个方法

public class PhotoController : ApiController
{
    public IPhotoService _photoService;

    public PhotoController()
    {
        _photoService = new PhotoService();
    }

    [HttpPost]
    [Route("photo/upload/{photo}")]
    public bool UploadPicture()
    {
        try
        {
            var httpRequest = HttpContext.Current.Request;
            JObject param = JObject.Parse(HttpContext.Current.Request.Params["photo"]);

            var path = "../" + Utils.RandomGenerator() + Utils.RandomGenerator() + "." + httpRequest.Files[0].FileName.Split('.').Last();
            var postedFile = httpRequest.Files[0];
            var filePath = HttpContext.Current.Server.MapPath(path);
            postedFile.SaveAs(filePath);
            _photoService.UploadPhoto(param, path);

            return true;
        }
        catch (Exception ex)
        {
            return false;
        }
    }
}

如果我删除这段代码

public IPhotoService _photoService;

    public PhotoController()
    {
        _photoService = new PhotoService();
    }

它可以工作,但是每当我创建服务时,API 方法都无法工作

在客户端控制台上总是打印出这个错误

POST localhost:17699/photo/upload/%7Bphoto%7D 500(内部服务器错误)

我不知道为什么,因为我的其他 API 控制器可以正常工作。

我已经搜索、清理和构建项目......等等......

你们能帮帮我吗

4

0 回答 0