使用HttpClient上传图片到URI

我对http相关的东西是个新手,所以有点堆积。

我想要的很简单,我需要POST,上传一个图片到一个服务器上,就像这样。http://web.com/imageGalerry .

我想它不会太复杂 但我不知道为什么我没有收到错误的信息 到目前为止,我不知道如何继续(因为图片实际上没有上传),这是我的代码。

public async Task<object> UpdateGalleryResources(IFormFile file, int idResouce)
        {
            byte[] data;
            string result = "";
            ByteArrayContent bytes;
            var urlToPost = "http://hello.uk/imagegallery/resources/" + 00+ "/" + file.FileName;

            MultipartFormDataContent multiForm = new MultipartFormDataContent();

            try
            {
                using (var client = new HttpClient())
                {
                    using (var br = new BinaryReader(file.OpenReadStream()))
                    {
                        data = br.ReadBytes((int)file.OpenReadStream().Length);
                    }

                    bytes = new ByteArrayContent(data);
                    multiForm.Add(bytes, "file", file.FileName);
                    //multiForm.Add(new StringContent("value1"), "key1");
                    //multiForm.Add(new StringContent("value2"), "key2");


                    var res = await client.PostAsync(urlToPost, multiForm);
                    return res;
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.ToString());
            }
        }

这是视图。

<form action="/Galley/UpdateGallery"  method="post" class="dropzone" id="myDropzone">

    <input type="hidden" value="1" name="idResource" />

</form>

以及我用来处理视图的dropzone js。

document.addEventListener("DOMContentLoaded", function () {

    // access Dropzone here
    //dropzone.js detecta la version 'camelized' cuando el div tiene la clase dropzone
    Dropzone.options.myDropzone = {
        addRemoveLinks: true,
        //autoProcessQueue: false,
.....
       }

这是我得到的错误代码 return res

  {StatusCode: 404, ReasonPhrase: 'Not Found', Version: 1.1, Content: System.Net.Http.HttpConnection+HttpConnectionResponseContent, Headers:
{
  Server: Microsoft-IIS/8.5
  X-Powered-By: ASP.NET
  Date: Thu, 23 Apr 2020 08:22:52 GMT
  Content-Type: text/html
  Content-Length: 1282
}}

这是我在调试模式下检查的,一切我认为看起来都是对的。enter image description here

你能帮我看看我做错了什么吗? 谢谢你

解决方案:

在过去,我发现以下两段代码很重要,当把图像作为IFormFile上传到ASP.Net控制器时。

在视图中的表单标签上添加enctype属性。

<form enctype="multipart/form-data" othertags="..."></form>

关于multipartform-data是什么意思的解释。enctype=’multipartform-data’是什么意思?

然后将正确的绑定添加到你的控制器参数中

public async Task<object> UpdateGalleryResources([FromForm]IFormFile file, int idResouce)

我不确定这如何与dropzone一起工作,但如果IFormFile在控制器中显示为空,这可能值得一试。

给TA打赏
共{{data.count}}人
人已打赏
解决方案

Sarama无法为Amazon MSK 2.3.1版本生成消息。

2022-5-11 0:00:18

解决方案

我可以在本地Wamp服务器上使用OpenGL吗?

2022-5-11 1:00:11

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索