Asp.Net WebApi上传图片
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Asp.Net WebApi上传图片,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3098字,纯文字阅读大概需要5分钟。
内容图文
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Globalization; using System.IO; using System.Net; using System.Net.Http; using System.Net.Http.Headers; using System.Threading.Tasks; using System.Web; using System.Web.Http; namespace cms.Web.API { public class CeshiController : ApiController { public async Task<IHttpActionResult> PostUpload() { //检查是否是 multipart/form-data if (!Request.Content.IsMimeMultipartContent()) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } //设置上传目录 string root = HttpContext.Current.Server.MapPath("~/upload"); var provider = new MultipartFormDataStreamProvider(root); try { //读取form data. await Request.Content.ReadAsMultipartAsync(provider); string urlPic = string.Empty; foreach (var file in provider.FileData) { //这里获取含有双引号'" ' string filename = file.Headers.ContentDisposition.FileName.Trim('"'); //获取对应文件后缀名 string fileExt = filename.Substring(filename.LastIndexOf('.')); FileInfo fileinfo = new FileInfo(file.LocalFileName); //fileinfo.Name 上传后的文件路径 此处不含后缀名 //修改文件名 添加后缀名 string fname = DateTime.Now.ToString("yyyyMMddHHmmss_ffff", DateTimeFormatInfo.InvariantInfo); //string newFilename = fileinfo.Name + fileExt;默认文件名guid生成 string newFilename = fname + fileExt; //最后保存文件路径 string saveUrl = Path.Combine(root, newFilename); fileinfo.MoveTo(saveUrl); urlPic += "/upload/" + newFilename; } // 获取表单 key-value. //foreach (var key in provider.FormData.AllKeys) //{ // foreach (var val in provider.FormData.GetValues(key)) // { // str+=string.Format("{0}: {1}", key, val); // } //} if (!string.IsNullOrEmpty(urlPic)) { dynamic data = new { status = true, url = urlPic }; return Json<dynamic>(data); } else { dynamic data = new { status = false, message = "上传失败" }; return Json<dynamic>(data); } } catch { dynamic data = new { status = false, message = "上传失败" }; return Json<dynamic>(data); } } } }
HTML
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>webapi上传图片</title> <script type="text/javascript" src="Scripts/jquery-1.8.2.js"></script> </head> <body> <h2>webapi create</h2> <div> <form name="form1" method="post" enctype="multipart/form-data" action="api/ceshi/PostUpload"> <div> <label for="caption">name</label> <input name="name" type="text" /> </div> <div> <label for="image1">Image</label> <input type="file" name="photo" id="photo" /> </div> <div> <input type="button" value="ajax upload" id="btnUpload" /> </div> <div> <img id="phptoPic" width="200" /> </div> </form> </div> <script type="text/javascript"> $(function () { $("#btnUpload").click(function () { var formData = new FormData(); formData.append("photo", $("#photo")[0].files[0]); formData.append("service", 'App.Passion.UploadFile'); formData.append("token", "123"); $.ajax({ url: 'api/ceshi/PostUpload', type: 'post', data: formData, contentType: false, processData: false, success: function (res) { //console.log(res); if (res.status) { $("#phptoPic").attr("src", res.url) } else { alert(res.message) } } }) }) }) </script> </body> </html>
内容总结
以上是互联网集市为您收集整理的Asp.Net WebApi上传图片全部内容,希望文章能够帮你解决Asp.Net WebApi上传图片所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。