【问题标题】:ASP.NET Web API HTTPRequestMessage with CLR Object to upload fileASP.NET Web API HTTPRequestMessage 与 CLR 对象上传文件
【发布时间】:2014-08-22 06:15:33
【问题描述】:

我想使用带有安全令牌的 ASP.NET Web API 将文件上传到服务器,并在 HTTPRequestMessage 中嵌入 CLR 对象。

我可以找到使用具有多部分内容类型的 Web API Async POST 文件的解决方案,但是没有解决方案可以使用带有标头令牌的自定义 HTTP 请求消息上传...

我正在使用下面的代码

    public HttpResponseMessage UploadImportFile()
    {
        List<string> FileIdentifiers = new List<string>();

        // Check if the request contains multipart/form-data.
        if (!Request.Content.IsMimeMultipartContent())
        {
            throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
        }

        string root = ImportFileDirectory;
        MultipartFormDataStreamProvider provider = new MultipartFormDataStreamProvider(root);

        try
        {
            // Read the form data.
            Request.Content.ReadAsMultipartAsync(provider);

            foreach (MultipartFileData file in provider.FileData)
            {
                FileIdentifiers.Add(file.LocalFileName.Replace(root, "").Replace("BodyPart_", ""));
            }
            return Request.CreateResponse(HttpStatusCode.OK, new FileUploadResponseType(Ackowledgememt.Success, UtcDateTime.Now, null, version, FileIdentifiers));
        }
        catch (System.Exception e)
        {
            log.Error(e);
            return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e);
        }
    }

【问题讨论】:

    标签: asp.net-mvc rest asp.net-web-api


    【解决方案1】:

    有很多方法可以在 Web API 中实现它。如果您想在 HTTP 标头中传递安全令牌,一个不错的选择是实现一个添加到您的上传文件操作的授权过滤器;过滤器将通过查看请求消息头来验证安全令牌;如果验证成功,请求将通过;否则过滤器会抛出异常(如HttpResponseException),从而拒绝请求。

    【讨论】:

    • 我已经用我用来上传文件的代码更新了这个问题。如果我包含自定义 httprequestmessage 作为输入。不调用以下操作。如何使用 httprequestmessage 发布文件
    猜你喜欢
    • 1970-01-01
    • 2020-07-10
    • 2017-10-11
    • 2014-05-15
    • 2016-11-14
    • 1970-01-01
    • 2021-07-07
    • 2012-07-27
    • 2020-01-28
    相关资源
    最近更新 更多