簡體   English   中英

具有CLR對象的ASP.NET Web API HTTPRequestMessage可上傳文件

[英]ASP.NET Web API HTTPRequestMessage with CLR Object to upload file

我想使用ASP.NET Web API將文件上傳到服務器,並在標題中添加安全性令牌,並將CLR對象嵌入HTTPRequestMessage

我可以使用具有多部分內容類型的Web API異步找到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);
        }
    }

有很多方法可以在Web API中實現它。 如果您想在HTTP標頭中傳遞安全令牌,那么最好的辦法是實現添加到您的上傳文件操作中的授權過濾器。 過濾器將通過查看請求消息頭來驗證安全令牌; 如果驗證成功,請求將通過; 否則,篩選器可以引發異常(例如HttpResponseException),以便拒絕該請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM