ASP.net WebAPI 上傳圖片實例
更新時間:2013年12月16日 16:00:33 作者:
這篇文章主要介紹了ASP.net WebAPI 上傳圖片實例,有需要的朋友可以參考一下
復(fù)制代碼 代碼如下:
[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);
// 設(shè)置上傳目錄
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('.'));
//定義允許上傳的文件擴(kuò)展名
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"] = "上傳文件擴(kuò)展名是不允許的擴(kuò)展名。";
}
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 core WebApi 使用Swagger生成幫助頁實例
- ASP.NET Core 2.0 WebApi全局配置及日志實例
- ASP.NET WebAPi(selfhost)實現(xiàn)文件同步或異步上傳
- 淺談ASP.Net Core WebApi幾種版本控制對比
- 為ASP.NET MVC及WebApi添加路由優(yōu)先級
- 在CentOS6.5上使用Jexus安裝部署ASP.NET MVC4和WebApi
- asp.net core 2.0 webapi集成signalr(實例講解)
- ASP.Net WebAPI與Ajax進(jìn)行跨域數(shù)據(jù)交互時Cookies數(shù)據(jù)的傳遞
- asp.net mvc webapi 實用的接口加密方法示例
- .net webapi接收xml格式數(shù)據(jù)的3種情況小結(jié)
相關(guān)文章
使用FlashPaper在線轉(zhuǎn)換.doc為.swf
Flashpaper的使用相信大多數(shù)人都知道,這里的Demo是用于在線轉(zhuǎn)換 .doc文件轉(zhuǎn)換為 .swf的flash文件。2011-02-02國產(chǎn)化之銀河麒麟安裝.netcore3.1的詳細(xì)步驟(手動安裝)
這篇文章主要介紹了國產(chǎn)化之銀河麒麟安裝.netcore3.1的詳細(xì)步驟(手動安裝),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03.Net中Task Parallel Library的進(jìn)階用法
這篇文章介紹了.Net中Task Parallel Library的進(jìn)階用法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-10-10asp.net 通過httpModule計算頁面的執(zhí)行時間
有時候我們想檢測一下網(wǎng)頁的執(zhí)行效率。記錄下開始請求時的時間和頁面執(zhí)行完畢后的時間點(diǎn),這段時間差就是頁面的執(zhí)行時間了。要實現(xiàn)這個功能,通過HttpModule來實現(xiàn)是最方便而且準(zhǔn)確的。2011-02-02.Net Core 實現(xiàn)圖片驗證碼的實現(xiàn)示例
這篇文章主要介紹了.Net Core 實現(xiàn)圖片驗證碼的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03.NET中OpenFileDialog使用線程報錯的解決方法
這篇文章主要為大家詳細(xì)介紹了.NET中OpenFileDialog使用線程報錯的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01DataGrid 動態(tài)添加模板列 實現(xiàn)代碼
模版控件能讓用戶幾乎不用花費(fèi)任何時間就創(chuàng)建出復(fù)雜的用戶界面. Asp.net有很多控件都使用了模版技術(shù)(DataGrid就是一個例子). 而這些控件都工作得很好, 通常, 模版可以被保存為ascx文件以增加復(fù)用性. 很有可能, 事前你是不知道你的控件是怎么布局的, 而且你需要動態(tài)的添加一些模版以應(yīng)付不同的事件.2009-04-04