1. [HttpPost]
  2. public Task<Hashtable> ImgUpload()
  3. {
  4. // 检查是否是 multipart/form-data
  5. if (!Request.Content.IsMimeMultipartContent("form-data"))
  6. throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
  7. //文件保存目录路径
  8. string SaveTempPath = "~/SayPlaces/" + "/SayPic/SayPicTemp/";
  9. String dirTempPath = HttpContext.Current.Server.MapPath(SaveTempPath);
  10. // 设置上传目录
  11. var provider = new MultipartFormDataStreamProvider(dirTempPath);
  12. //var queryp = Request.GetQueryNameValuePairs();//获得查询字符串的键值集合
  13. var task = Request.Content.ReadAsMultipartAsync(provider).
  14. ContinueWith<Hashtable>(o =>
  15. {
  16. Hashtable hash = new Hashtable();
  17. hash["error"] = ;
  18. hash["errmsg"] = "上传出错";
  19. var file = provider.FileData[];//provider.FormData
  20. string orfilename = file.Headers.ContentDisposition.FileName.TrimStart('"').TrimEnd('"');
  21. FileInfo fileinfo = new FileInfo(file.LocalFileName);
  22. //最大文件大小
  23. int maxSize = ;
  24. if (fileinfo.Length <= )
  25. {
  26. hash["error"] = ;
  27. hash["errmsg"] = "请选择上传文件。";
  28. }
  29. else if (fileinfo.Length > maxSize)
  30. {
  31. hash["error"] = ;
  32. hash["errmsg"] = "上传文件大小超过限制。";
  33. }
  34. else
  35. {
  36. string fileExt = orfilename.Substring(orfilename.LastIndexOf('.'));
  37. //定义允许上传的文件扩展名
  38. String fileTypes = "gif,jpg,jpeg,png,bmp";
  39. if (String.IsNullOrEmpty(fileExt) || Array.IndexOf(fileTypes.Split(','), fileExt.Substring().ToLower()) == -)
  40. {
  41. hash["error"] = ;
  42. hash["errmsg"] = "上传文件扩展名是不允许的扩展名。";
  43. }
  44. else
  45. {
  46. String ymd = DateTime.Now.ToString("yyyyMMdd", System.Globalization.DateTimeFormatInfo.InvariantInfo);
  47. String newFileName = DateTime.Now.ToString("yyyyMMddHHmmss_ffff", System.Globalization.DateTimeFormatInfo.InvariantInfo);
  48. fileinfo.CopyTo(Path.Combine(dirTempPath, newFileName + fileExt), true);
  49. fileinfo.Delete();
  50. hash["error"] = ;
  51. hash["errmsg"] = "上传成功";
  52. }
  53. }
  54. return hash;
  55. });
  56. return task;
  57. }

ASP.net WebAPI 上传图片的更多相关文章

  1. Asp.Net WebApi上传图片

    webapi using System; using System.Collections; using System.Collections.Generic; using System.Diagno ...

  2. kindeditor修改图片上传路径-使用webapi上传图片到图片服务器

    kindeditor是一个非常好用的富文本编辑器,它的简单使用我就不再介绍了. 在这里我着重介绍一些使用kindeditor修改图片上传路径并通过webapi上传图片到图片服务器的方案. 因为我使用的 ...

  3. kindeditor扩展粘贴图片功能&修改图片上传路径并通过webapi上传图片到图片服务器

    前言 kindeditor是一个非常好用的富文本编辑器,它的简单使用我就不再介绍了. 而kindeditor却对图片的处理不够理想. 本篇博文需要解决的问题有两个: kindeditor扩展粘贴图片功 ...

  4. kindeditor扩展粘贴截图功能&修改图片上传路径并通过webapi上传图片到图片服务器

    前言 kindeditor是一个非常好用的富文本编辑器,它的简单使用我就不再介绍了. 而kindeditor却对图片的处理不够理想. 本篇博文需要解决的问题有两个: kindeditor扩展粘贴图片功 ...

  5. ajax C# webapi上传图片

    html ajax上传图片到服务器 后端采用asp.net webapi 前端有各种现实上传图片的控件,样式可以做的很美观.我这里只用基本的样式做图片上传. 前端代码 <input name=& ...

  6. Asp.Net WebApi核心对象解析(下篇)

    在接着写Asp.Net WebApi核心对象解析(下篇)之前,还是一如既往的扯扯淡,元旦刚过,整个人还是处于晕的状态,一大早就来处理系统BUG,简直是坑爹(好在没让我元旦赶过来该BUG),队友挖的坑, ...

  7. ASP.NET WebApi OWIN 实现 OAuth 2.0

    OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用. OAuth 允许用户提供一个令牌, ...

  8. Asp.Net WebApi核心对象解析(上篇)

    生活需要自己慢慢去体验和思考,对于知识也是如此.匆匆忙忙的生活,让人不知道自己一天到晚都在干些什么,似乎每天都在忙,但又好似不知道自己到底在忙些什么.不过也无所谓,只要我们知道最后想要什么就行.不管怎 ...

  9. ASP.NET WebApi 文档Swagger深度优化

    本文版权归博客园和作者吴双本人共同所有,转载和爬虫请注明博客园蜗牛原文地址,cnblogs.com/tdws   写在前面 请原谅我这个标题党,写到了第100篇随笔,说是深度优化,其实也并没有什么深度 ...

随机推荐

  1. URL中增加BASE64加密的字符串引起的问题(java.net.MalformedURLException:Illegal character in URL)

    序 昨天在做一个 Demo 的时候,因为是调用第三方的接口,採用的是 HTTP 的通信协议,依照文档上的说明,须要把參数进行加密后增加到 URL 中.可是,就是这个看似普普通通的操作,却让我着实费了非 ...

  2. spring mvc 返回json数据的四种方式

    一.返回ModelAndView,其中包含map集 /* * 返回ModelAndView类型的结果 * 检查用户名的合法性,如果用户已经存在,返回false,否则返回true(返回json数据,格式 ...

  3. WndProc Msg 消息列表

    WM_NULL = 0x0000; WM_CREATE = 0x0001;应用程序创建一个窗口 WM_DESTROY = 0x0002;一个窗口被销毁 WM_MOVE = 0x0003;移动一个窗口 ...

  4. 由RGB到HSV颜色空间的理解

    1. RGB模型 2. HSV模型 3. 如何理解RGB与HSV的联系 4. HSV在图像处理中的应用 5. opencv中RGB-->HSV实现 在图像处理中,最常用的颜色空间是RGB模型,常 ...

  5. CLLocation

    http://blog.sina.com.cn/s/blog_9e8867eb01013knc.html 这家伙写的不错本人也参考了这篇博客,希望原文博主可以谅解新手的无奈举措 首相要提到的类是 CL ...

  6. 红豆带你从零学C#系列之:初识继承与多态

    继承 现实生活当中,人类又可以根据职业分为:教师,学生,理发师,售货员 又比如飞机又有种类之分:直升飞机.客机.货机.战斗机等 在程序里面我们可能会通过创建类来描述这样的事物,比如学生类.教师类.理发 ...

  7. Unity5UGUI 官方教程学习笔记(三)UI BUTTON

    Button Interactable :为了避免与该按钮产生交互,可以设置它为false Transition: 管理按钮在正常情况 ,按下,经过时的显示状态  None  按钮整正常工作 但是在按 ...

  8. rsa 密钥和公钥的生成

    openssl genrsa -out prikey.pem openssl rsa -in prikey.pem -pubout -out pubkey.pem

  9. jq 22 一个很好图片显示

    Picbox 示例页面:http://www.jq22.com/Demo961

  10. Listview 多个ViewHolder实现

    简单代码示例: package com.edaixi.adapter; import android.content.Context; import android.view.View; import ...