时间:2016-02-15 23:32 来源: 我爱IT技术网 作者:佚名
欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【ASP.net WebAPI 上传图片实例】,下面是详细的讲解!
ASP.net WebAPI 上传图片实例
[HttpPost]
public Task<Hashtable> ImgUpload()
{
// 检查是否是 multipart/form-data
if (!Request.Content.IsMimeMultipartContent("form-data"))
throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
//文件保存目录路径
string SaveTempPath="~/SayPlaces/" + "/SayPic/SayPicTemp/";
String dirTempPath=HttpContext.Current.Server.MapPath(SaveTempPath);
// 设置上传目录
var provider=new MultipartFormDataStreamProvider(dirTempPath);
//var queryp=Request.GetQueryNameValuePairs();//获得查询字符串的键值集合
var task=Request.Content.ReadAsMultipartAsync(provider).
ContinueWith<Hashtable>(o=>
{
Hashtable hash=new Hashtable();
hash["error"]=1;
hash["errmsg"]="上传出错";
var file=provider.FileData[0];//provider.FormData
string orfilename=file.Headers.ContentDisposition.FileName.TrimStart('"').TrimEnd('"');
FileInfo fileinfo=new FileInfo(file.LocalFileName);
//最大文件大小
int maxSize=10000000;
if (fileinfo.Length <=0)
{
hash["error"]=1;
hash["errmsg"]="请选择上传文件。";
}
else if (fileinfo.Length > maxSize)
{
hash["error"]=1;
hash["errmsg"]="上传文件大小超过限制。";
}
else
{
string fileExt=orfilename.Substring(orfilename.LastIndexOf('.'));
//定义允许上传的文件扩展名
String fileTypes="gif,jpg,jpeg,png,bmp";
if (String.IsNullOrEmpty(fileExt) || Array.IndexOf(fileTypes.Split(','), fileExt.Substring(1).ToLower())==-1)
{
hash["error"]=1;
hash["errmsg"]="上传文件扩展名是不允许的扩展名。";
}
else
{
String ymd=DateTime.Now.ToString("yyyyMMdd", System.Globalization.DateTimeFormatInfo.InvariantInfo);
String newFileName=DateTime.Now.ToString("yyyyMMddHHmmss_ffff", System.Globalization.DateTimeFormatInfo.InvariantInfo);
fileinfo.CopyTo(Path.Combine(dirTempPath, newFileName + fileExt), true);
fileinfo.Delete();
hash["error"]=0;
hash["errmsg"]="上传成功";
}
}
return hash;
});
return task;
}
关于ASP.net WebAPI 上传图片实例的用户互动如下:
相关问题:
答: >>详细
相关问题:
答: >>详细
相关问题:
答: >>详细
- 【asp】asp.net url重写浅谈-net-url重写
- 【DataSet】DataSet、DataTable、DataRow区别详解
- 【asp】asp.net 动态添加多个用户控件-net-动态添
- 【创建】ASP.NET Web API教程 创建域模型的方法详
- 【Asp】Asp.net 页面调用javascript变量的值-net-
- 【ASP】ASP.NET 5升级后如何删除旧版本的DNX-NET5
- 【404页面】ASP.NET设置404页面返回302HTTP状态码
- 【Visual】分享Visual Studio原生开发的10个调试
- 【全局】.net全局定时定期执行某些操作在Global.a
- 【asp】asp.net ubb使用代码-net-ubb使用
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
