Angularjs web api中的ng流文件上载

Angularjs web api中的ng流文件上载,angularjs,file-upload,ng-flow,Angularjs,File Upload,Ng Flow,我已经看到了许多使用ng-flow的例子,它们使用php端服务器上传文件。但由于我不是php方面的专家,我需要一些webapi方面的帮助,有人能帮我找到一个使用webapi文件上传的ng flow的工作示例或教程吗 谢谢大家。下面是我的web api代码 [HttpPost] public async Task<HttpResponseMessage> SaveFile() { if (!Request.Content.IsMi

我已经看到了许多使用ng-flow的例子,它们使用php端服务器上传文件。但由于我不是php方面的专家,我需要一些webapi方面的帮助,有人能帮我找到一个使用webapi文件上传的ng flow的工作示例或教程吗


谢谢大家。

下面是我的web api代码

[HttpPost]
        public async Task<HttpResponseMessage> SaveFile()
        {
            if (!Request.Content.IsMimeMultipartContent())
                Request.CreateResponse(HttpStatusCode.UnsupportedMediaType);

            var provider = FileSaver.GetMultipartProvider();

            var result = await Request.Content.ReadAsMultipartAsync(provider);
            var fileInfo = FileSaver.MoveToTemp(result);
            return Request.CreateResponse(HttpStatusCode.OK, fileInfo);
        }

我无法访问ColloSysParam。你能告诉我那到底是什么吗?我们如何在ng flow的配置中配置SaveFile()方法?将其替换为上载路径。。。相应地编辑了代码。。您需要使用ng flow发布文件内容。。。根据您的问题,您在服务器端有问题。。。
public class FileSaver
{
    public static MultipartFormDataStreamProvider GetMultipartProvider()
    {
        var uploadFolder = //your upload path;
        return new MultipartFormDataStreamProvider(uploadFolder);
    }

    private static string GetDeserializedFileName(MultipartFileData fileData)
    {
        var fileName = GetFileName(fileData);
        return JsonConvert.DeserializeObject(fileName).ToString();
    }

    private static string GetFileName(MultipartFileData fileData)
    {
        return fileData.Headers.ContentDisposition.FileName;
    }

    public static FileInfo MoveToTemp(MultipartFormDataStreamProvider result)
    {
        var originalFileName = GetDeserializedFileName(result.FileData.First());
        var uploadedFileInfo = new FileInfo(result.FileData.First().LocalFileName);
        string timestamp = DateTime.UtcNow.ToString("yyyyMMddHHmmssfff", CultureInfo.InvariantCulture);
        var folder = Directory.CreateDirectory(**); //your upload path
        if (!folder.Exists) folder.Create();
        var filename = folder.FullName + @"\" + originalFileName;
        MoveFile(uploadedFileInfo, filename);
        return uploadedFileInfo;
    }

    private static void MoveFile(FileInfo fileInfo, string filename)
    {
        var count = 0;
        do
        {
            try
            {
                fileInfo.MoveTo(filename);
                return;
            }
            catch (Exception)
            {
                if (count == 4)
                {
                    throw;
                }
                count++;
                Thread.Sleep(1 * 1000);
            }
        } while (true);
    }
}