0

我们通过调用第三方公司的 Web 服务 API 方法将图片和视频等媒体类型上传到第三方公司服务器。

他们的 Web 服务的端点 URI 类似于以下内容:

发布https://blah.ThirdPartyFirm.com/v2/blahBlah/media

它们需要 POST 调用。

他们的请求如下所示:

内容类型:multipart/form-data;边界=AaB03x 内容处置:表单数据;名称=“文件1”;filename="chunky_bacon.png" 内容类型:video/mp4 --AaB03x

... omg_pink_ponies.png 的内容 ... --AaB03x--

请告诉我如何配置 Telerik AsyncUpload 控件以将图片或视频文件上传到上述第三方 Web 服务 API。

4

1 回答 1

0

完成此任务的最佳方法是将 AsyncUpload 配置为使用自定义处理程序。然后在处理程序的 Process 方法中获得文件数据后,只需将其发送到 Web API 服务。

                <telerik:RadAsyncUpload
                ID="RadAsyncUpload1"
                OnClientFileUploadFailed="OnClientFileUploadFailed"
                OnClientValidationFailed="OnClientValidationFailed"
                HttpHandlerUrl="~/Handler.ashx"
                runat="server">
            </telerik:RadAsyncUpload>
    <%@ WebHandler Language="C#" Class="Handler" %>

using System;
using System.Web;
using Telerik.Web.UI;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.Data.SqlClient;
using System.IO;

public class Handler : AsyncUploadHandler, System.Web.SessionState.IRequiresSessionState
{
  protected override IAsyncUploadResult Process(UploadedFile file, HttpContext context, IAsyncUploadConfiguration configuration, string tempFileName)
    {
//here send the file to the WebAPI method
//and return custom result to the client
}
}

如果您想知道是否可以在客户端读取文件对象,那么您应该知道这仅适用于支持 HTML5 File API 的较新浏览器。

于 2014-03-31T14:49:23.330 回答