【问题标题】:ASP.NET CORE 2.0 - cURL file uploadASP.NET CORE 2.0 - cURL 文件上传
【发布时间】:2018-02-05 19:02:07
【问题描述】:

我正在尝试使用https://dropfile.to/api API 服务。我需要有基本上获取 IFormFile 并将其上传到 API 的文件上传表单。问题是我收到状态为 2 的奇怪请求,这意味着“未知错误”。在他们的网站上说我应该使用:

curl -F "file=@screenshot.jpg" https://d1.dropfile.to/upload

如何在 ASP.NET 中执行这样的操作?我尝试了在这个网站上找到的所有解决方案,但都没有奏效。

到目前为止我得到了什么:

public static async Task<HttpResponseMessage> PostFile(string address, IFormFile file)
{
    using (var client = new HttpClient())
    {
        using (var binaryReader = new BinaryReader(file.OpenReadStream()))
        {
            var data = binaryReader.ReadBytes((int)file.OpenReadStream().Length);
            var bytes = new ByteArrayContent(data);
            var multiContent = new MultipartFormDataContent {
                {
                    bytes, "file", file.FileName
                }
            };

            return await client.PostAsync(address, multiContent);
        }
    }
}

仅 HTML 表单的工作版本:

<form action="https://d3.dropfile.to/upload" method="post" enctype="multipart/form-data">
    <input type="file" name="files[]" id="files" multiple="multiple">
    <input type="submit">
</form>

我无法使用 HTML 表单版本,因为我会跟踪上传的文件。

有效响应:

{

    "files": [
        "eBooks.txt",
        "znOu9ZB",
        "wUFTssk",
        "14323"
        ],
    "status": 0,
    "url": "https:\/\/dropfile.to\/znOu9ZB",
    "access_key": "wUFTssk"
}

响应失败:

{
    "files":{
        "1":"ZW2FSA8",
        "2":"XzBpM6w"
    },
    "status":2
}

谢谢。

【问题讨论】:

    标签: asp.net-mvc asp.net-core asp.net-core-mvc


    【解决方案1】:

    我最终使用了名为 RestSharp 的 Nugget 包。我的代码如下:

    var client = new RestClient("https://d1.dropfile.to/");
    var request = new RestRequest("upload", Method.POST);
    request.AddFileBytes("file", file, $"{Guid.NewGuid()}.zip", "application/zip");
    
    var response = client.Execute(request).Content;
    

    【讨论】:

      猜你喜欢
      • 2018-02-22
      • 2019-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-21
      • 1970-01-01
      • 2021-08-02
      相关资源
      最近更新 更多