如何通过WebApi上传图片

2023-12-27

我如何通过上传图像文件ASP.NET Web API?
我在文件模式下有一个输入标签,并将其发布到 API,如何将其保存到服务器文件夹?
我尝试了这段代码,但它不起作用:

private void UploadWholeFile(HttpRequestBase request)
{
   for (int i = 0; i < request.Files.Count; i++)
   {
      var file = request.Files[i];

      var ext = new FileInfo(file.FileName).Extension;
      var fullPath = Path.Combine(StorageRoot, Path.GetFileName(Guid.NewGuid() + ext));

      file.SaveAs(fullPath);
   }
}

这里我描述了在web api中上传图片的整个过程

[Route("user/PostUserImage")]
public async Task<HttpResponseMessage> PostUserImage()
{
    Dictionary<string, object> dict = new Dictionary<string, object>();
    try
    {
        var httpRequest = HttpContext.Current.Request;

        foreach (string file in httpRequest.Files)
        {
            HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created);

            var postedFile = httpRequest.Files[file];
            if (postedFile != null && postedFile.ContentLength > 0)
            {
                int MaxContentLength = 1024 * 1024 * 1; //Size = 1 MB
                IList<string> AllowedFileExtensions = new List<string> { ".jpg", ".gif", ".png" };
                var ext = postedFile.FileName.Substring(postedFile.FileName.LastIndexOf('.'));
                var extension = ext.ToLower();
                if (!AllowedFileExtensions.Contains(extension))
                {
                    var message = string.Format("Please Upload image of type .jpg,.gif,.png.");

                    dict.Add("error", message);
                    return Request.CreateResponse(HttpStatusCode.BadRequest, dict);
                }
                else if (postedFile.ContentLength > MaxContentLength)
                {
                    var message = string.Format("Please Upload a file upto 1 mb.");

                    dict.Add("error", message);
                    return Request.CreateResponse(HttpStatusCode.BadRequest, dict);
                }
                else
                {
                    YourModelProperty.imageurl = userInfo.email_id + extension;
                    //  where you want to attach your imageurl

                    //if needed write the code to update the table

                    var filePath = HttpContext.Current.Server.MapPath("~/Userimage/" + userInfo.email_id + extension);
                    //Userimage myfolder name where I want to save my image
                    postedFile.SaveAs(filePath);
                }
            }

            var message1 = string.Format("Image Updated Successfully.");
            return Request.CreateErrorResponse(HttpStatusCode.Created, message1); ;
        }

        var res = string.Format("Please Upload a image.");
        dict.Add("error", res);
        return Request.CreateResponse(HttpStatusCode.NotFound, dict);
    }
    catch (Exception ex)
    {
        var res = string.Format("some Message");
        dict.Add("error", res);
        return Request.CreateResponse(HttpStatusCode.NotFound, dict);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过WebApi上传图片 的相关文章

随机推荐

  • jQuery 的 .isWindow 方法?

    我试图从 jQuery 的动画函数中了解我能做什么 但最终遇到了各种我不理解的内部函数 最终落在了 isWindow 上 isWindow 的代码检查对象是否具有该属性setInterval 否则返回 false 当然 任何对象都可以具有以
  • 如何仅对一个 .vue 文件禁用 vue/multi-word-component-names eslint 规则?

    我正在使用Vue ESLint 插件 https eslint vuejs org 它有一个规则不允许使用单个单词的组件名称 https eslint vuejs org rules multi word component names h
  • PHP upload_max_filesize

    我的 php 文件上传有问题 在我的 php ini 中 upload max filesize 设置为 4mb 当我尝试上传大于该文件的文件时 我从未像预期的那样收到 UPLOAD ERR INI SIZE 错误 但页面再次显示表单 但没
  • 适用于 Google BigQuery 标准 SQL 的任何 JDBC 驱动程序

    我需要 JDBC 驱动程序将我的应用程序连接到 Google BigQuery 我尝试了 CData JDBC 驱动程序 但它不支持所有类型的标准 SQL 查询 还有其他完整的选择吗 官方BigQuery 的 JDBC 驱动程序 https
  • 即复杂的子域cookie问题

    我所有的 cookie 在子域上都工作得很好 但如果子域中有 那么 cookie 根本不会被读取 也根本不会正确 以下是我的测试结果 它将自我解释 justlife demo com works fine just life demo co
  • 如何通过 Google Tag Manager for Next-Js 设置 Google Analytics?

    以前我使用react ga npm 模块在我的下一个js 应用程序中插入谷歌分析 就是这样 import ReactGA from react ga export const initGA gt ReactGA initialize UA
  • 当新子项添加到 Firebase 数据库时发送通知

    我在我的应用程序中使用 Firebase 数据库 当新订单添加到数据库 新子添加到数据库 时 我需要向管理员发送通知 我发现了一个名为 Firebase 云消息传递的东西 但我不知道如何使用它 有什么帮助吗 Firebase Cloud M
  • 使用动态参数查询 Diesel 表

    我开始考虑使用 Diesel 来查询数据库 我有一个类似于下面结构的表格 这只是一个玩具项目 旨在帮助我了解 Diesel 的工作原理 derive Queryable Insertable table name posts struct
  • ServletContextListener 严重:配置类 marktest.Config 的应用程序侦听器时出错

    我的 Java servlet 似乎抱怨它找不到包 marktest 中包含的文件 我使用 Eclipse Indigo 和 Tomcat7 进行开发 这是错误 SEVERE Error configuring application li
  • 选择除一个元素之外的所有主体

    我试图选择 jQuery 中除 this 或悬停的元素之外的所有主体元素 我试图让身体达到一定的不透明度 但 这个 是为了保持其不透明度 这是我的代码 content img mouseenter function this animate
  • 自定义形状旋转问题

    我正在尝试围绕其中心旋转自定义形状 但无法获得预期的结果 我想要的是 形状应绕其中心旋转而不移动自身 我的解决方案目前正在做的是围绕其中心旋转整个形状 每次旋转都会改变其位置 我有多个形状 所以我创建了一个类来封装形状及其在以下类中的转换
  • CSS:百分比最小高度元素嵌套在百分比最小高度元素中

    我想让 html body 和wrapper 元素的最小高度都为 100 以便覆盖整个查看窗口 但我发现我只能使 html 遵守此声明 html body wrapper min height 100 html border 2px red
  • 随机化两个值之间的矩阵元素,同时保持行和列总和固定 (MATLAB)

    我遇到了一些技术问题 但我觉得使用 MATLAB 强大的工具集应该可以实现 我拥有的是一个由 0 和 w 组成的随机 n n 矩阵 例如生成的 A w rand n n
  • 动态ul li添加滚动条

    我搜索了许多帖子和论坛 因为我认为这可能是一个基本的东西 但没有找到它 所以在这里询问 我想做的就是添加滚动条 如果高度超过一定限制 假设菜单项超过3 我创建了一个jsfiddlehttp jsfiddle net euSWB http j
  • 了解多重继承中的虚表

    我有一个实现两个抽象类的类 如下所示 没有虚拟继承 无数据成员 class IFace1 public virtual void fcn int abc 0 class IFace2 public virtual void fcn1 int
  • 属性错误故障排除:“ResultSet”对象没有属性“findAll”

    我正在尝试解析http www ted com talks http www ted com talks所有演讲名称的页面 使用 BeautifulSoup 这是我所拥有的 import urllib2 from BeautifulSoup
  • 使用 PHP 和 XPath 获取与正则表达式匹配的 href

    我有一个包含多个超链接的页面 我想要得到的格式如下 div a href 123 text2 a div div a href 345 text1 a a href 678 text2 a div 我想提取三个 href 123 345 和
  • 停止 jQuery Mobile 滑动事件双冒泡

    我在 iPad Safari 上安装了 jQuery Mobile 由于某种原因 触摸滑动事件会触发两次 就在本周 人们在过去的一年中报告了同样的问题 但我找不到如何在不修改 jQuery Mobile 的情况下修复双重事件的解释 我不想这
  • 通过坐标提取PDF文本

    我想知道 Microsoft NET 中是否有一些 PDF 库能够通过给出坐标来提取文本 例如 在伪代码中 PdfReader reader new PdfReader reader Load file pdf Top bottom lef
  • 如何通过WebApi上传图片

    我如何通过上传图像文件ASP NET Web API 我在文件模式下有一个输入标签 并将其发布到 API 如何将其保存到服务器文件夹 我尝试了这段代码 但它不起作用 private void UploadWholeFile HttpRequ