如何使用Flurl上传文件和表单数据?

时间:2016-12-08 15:06:22

标签: c# flurl

我正在尝试上传包含正文内容的文件。 char_vars <- c('a', 'b', 'a b', '123') grep('[A-Za-z]', char_vars) gregexpr('[A-Za-z]', char_vars) matches = regmatches(char_vars,gregexpr('[A-Za-z]', char_vars)) for(i in 1:length(matches)) { for(found in matches[[i]]){ char_vars[i] = sub(pattern = found, replacement = paste(found, "_append", sep=""), x=char_vars[i]) } } 是唯一的方法吗?

在我的C#后端代码中,我有这个:

PostMultipartAsync

var resource = FormBind<StorageFileResource>(); var file = Request.Files.First().ToPostedFile(); 从请求中读取数据并填充对象。

使用FormBind我知道它应该像这样开始:

PostMultipartAsync,但我无法弄清楚如何添加对象。你有什么想法吗?

这是我目前的尝试:

.PostMultipartAsync((mp) => { mp.AddFile(name, stream, name)})

前端提出当前请求:

enter image description here

1 个答案:

答案 0 :(得分:17)

有多种方法可以添加&#34;部件&#34;使用Flurl进行多部分POST。我还没有将此添加到docs,但是issue中的一个例子基本上证明了所有可能性:

var resp = await "http://api.com"
    .PostMultipartAsync(mp => mp
        .AddString("name", "hello!")                // individual string
        .AddStringParts(new {a = 1, b = 2})         // multiple strings
        .AddFile("file1", path1)                    // local file path
        .AddFile("file2", stream, "foo.txt")        // file stream
        .AddJson("json", new { foo = "x" })         // json
        .AddUrlEncoded("urlEnc", new { bar = "y" }) // URL-encoded                      
        .Add(content));                             // any HttpContent