1. 程式人生 > >WebAPI圖片批量上傳+修改圖片名稱

WebAPI圖片批量上傳+修改圖片名稱

前言: 這幾天在做一個圖片上傳的API,在網上找了很多資料,也學到了很多東西,最近剛接觸WebAPI,好多東西都看不懂。 還停留在webfrom的概念, 哈哈 其實webfrom也沒學好,廢話不多說了,先看程式碼。

public async Task<HttpResponseMessage> PostUpload(string Token, int Part)
        {
            if (Global.checkToken(Token))  //驗證口令通過
            {
                // Check whether the POST operation is MultiPart?  
                if (!Request.Content.IsMimeMultipartContent())
                {
                    throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
                }

                // Prepare CustomMultipartFormDataStreamProvider in which our multipart form  
                // data will be loaded.  
                string partFolder = string.Empty;
                switch (Part)
                {
                    case 1:
                        partFolder = "MobileUploadImages_BaoGao";
                        break;
                    case 2:
                        partFolder = "MobileUploadImages_ShenQing";
                        break;
                    case 3:
                        partFolder = "MobileUploadImages_RenWu";
                        break;
                    default:
                        partFolder = "MobileUploadImages_QiTa";
                        break;
                }
                string fileSaveLocation = HttpContext.Current.Server.MapPath("~/"+ImageUploadPublic.FoldersAddress+"/"+partFolder);
                if (!Directory.Exists(fileSaveLocation))
                    Directory.CreateDirectory(fileSaveLocation);

                CustomMultipartFormDataStreamProvider provider = new CustomMultipartFormDataStreamProvider(fileSaveLocation);
                List<string> files = new List<string>();
                try
                {
                    // Read all contents of multipart message into CustomMultipartFormDataStreamProvider.                  
                    await Request.Content.ReadAsMultipartAsync(provider);
                    string newFileName = string.Empty;
                    foreach (MultipartFileData file in provider.FileData)
                    {
                        newFileName = Path.GetFileName(file.LocalFileName);
                        files.Add(newFileName);
                    }

                    return Request.CreateResponse(HttpStatusCode.OK, files);
                }
                catch (System.Exception e)
                {
                    return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e);
                }
            }
            else
            {
                string ResCode = "0002", Msg = "口令錯誤";
                Dictionary<string, object> obj = new Dictionary<string, object>();
                obj.Add("ResCode", ResCode);
                obj.Add("Msg", Msg);
                return Request.CreateResponse(HttpStatusCode.OK, obj);
            }
        }
public class CustomMultipartFormDataStreamProvider : MultipartFormDataStreamProvider
    {
        public CustomMultipartFormDataStreamProvider(string path) : base(path) { }

        public override string GetLocalFileName(HttpContentHeaders headers)
        {
            //修改圖片名稱並返回
            string newFileName = string.Empty;
            newFileName = Path.GetExtension(headers.ContentDisposition.FileName.Replace("\"", string.Empty));//獲取字尾名
            newFileName = DateTime.Now.ToString("yyyyMMddHHmmss") + new Random().Next(0, 99999) + newFileName;
            return newFileName;
        }
    }
上面兩塊程式碼就能實現圖片批量上傳功能, 下面是測試介面的程式碼:
static void Main(string[] args)
        {
            using (var client = new HttpClient())
            using (var content = new MultipartFormDataContent())
            {
                // Make sure to change API address  
                client.BaseAddress = new Uri("http://localhost:18110/");

                // Add first file content   
                var fileContent1 = new ByteArrayContent(File.ReadAllBytes(@"C:\Users\y\Desktop\testImgUpload\wokechakandehuibao.jpg"));
                fileContent1.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
                {
                    FileName = "wokechakandehuibao.jpg"
                };

                // Add Second file content  
                var fileContent2 = new ByteArrayContent(File.ReadAllBytes(@"C:\Users\y\Desktop\testImgUpload\xiezhoubaoFasongrenyuan.jpg"));
                fileContent2.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
                {
                    FileName = "xiezhoubaoFasongrenyuan.jpg"
                };

                content.Add(fileContent1);
                content.Add(fileContent2);

                // Make a call to Web API  
                var result = client.PostAsync("/WebAppErpUser/PostUpload?Token=000000&Part=1", content).Result;
                //HttpContent hc = result.Content;
                result.Content.ReadAsStringAsync().ContinueWith((str) => { Console.WriteLine(str.Result); });//輸出上傳的圖片名稱(修改後的)

                Console.WriteLine(result.StatusCode);
                Console.ReadLine();
            }
        }

其實網上有很多上傳圖片的web api 程式碼,只是沒有找到適合我的,結果到頭來找到這段程式碼基本實現了我的需求,所以就用這個了,然後自己再改吧改吧,就這樣了。

這一段程式碼是我在網上找的,具體在哪個網站找的我也忘了,其中添加了修改圖片名稱的功能,其他沒啥,只為複製程式碼的同學提供方便。

注:如果原創者看到了這個博文,請原諒我沒有記住你的名字,請原諒我沒有收藏你的部落格。

相關推薦

WebAPI圖片批量+修改圖片名稱

前言: 這幾天在做一個圖片上傳的API,在網上找了很多資料,也學到了很多東西,最近剛接觸WebAPI,好多東西都看不懂。 還停留在webfrom的概念, 哈哈 其實webfrom也沒學好,廢話不多說了,先看程式碼。 public async Task<HttpResp

修改KindEditor圖片批量數量和大小限制

KindEditor批量影象上載,默許答應使用者一起上載20張影象,單張影象容量不超越1MB。 有時不滿足咱們的需要,就需要修正KE批量上載影象的個數和單個影象鉅細限制。 KindEditor 4.1.11: 辦法一:呼叫KE時裝備好引數就行,程式碼如下

thinkphp5 結合plupload實現圖片批量

在extend目錄下新增目錄uploader,並新建類Uploads <?php namespace uploader; class Uploads { public static function upfile($file, $path = 'images', $add_domai

.NET使用swfupload實現圖片批量

var swfobject=function(){var X="undefined",P="object",a="visibility:visible",e="visibility:hidden",B="Shockwave Flash",h="ShockwaveFlash.ShockwaveFlash",V=

分享一個圖片管理程式,圖片批量,圖片管理(有圖片)

呵呵,好久沒寫部落格了。今天在此奉上一篇! 關於圖片管理,其實做專案很多地方都用到圖片管理。 比如:產品圖片,新聞圖片,作品圖片。 現分享一篇關於圖片管理的文章,希望大家能用得上。 先來看效果圖吧: 上傳頁面 上傳頁面2圖片選擇頁面。 主要功能: 1.圖片批量上傳。 1)

【開源】1句程式碼搞定圖片批量,無需什麼程式碼功底【無語言界限】

/// <summary> /// 圖片上傳 /// </summary> /// <returns></returns> public JsonResult Upload(HttpPo

筆記-關於圖片批量

1.使用webuploader :http://blog.csdn.net/qq_23959411/article/details/47659387 2.mui但圖片上傳:http://jishiwe

圖片批量

html批量上傳圖片到javaproject,然後由後臺轉到oss或存入本地; 其實最主要碰到的問題還是接受前端傳入圖片:分為單張圖片上傳,多個單張圖片上傳,和一個標籤多張圖片上傳。 @RequestMapping(value = "/uploadPhoto", meth

aws s3 圖片批量工具 CLI

1、aws文件https://aws.amazon.com/cn/getting-started/tutorials/backup-to-s3-cli/2、批量上傳需要加--recursiveC:\Users\85122>aws s3 cp E:\20180523\ s

圖片批量到阿里雲伺服器

上傳圖片頁面 <html>   <head>     <base href="<%=basePath%>">          <title>上傳圖片</title>     <meta http

Layui+SpringMVC實現圖片批量

最近需要做一個批量上傳圖片的功能,為豐富前端框架的拓展學習使用,這次打算用layui前端框架實現,原始碼放在文章底部,廢話不多說,先上演示效果執行前:操作後:一、匯入對應的layui樣式及其資原始檔1.引入對應的css及其js檔案2.編輯上傳的頁面3.上傳檔案的js配置<

thinkphp5 整合plupload實現圖片批量

<?php /*   * 檔案上傳  *   * Donald  * 2017-3-21  */ namespace app\backend\logic; use think\Model; class Plupupload extends Model{     public function uploa

**關於阿里雲oss圖片批量問題解析**

關於阿里雲oss圖片批量上傳問題解析 背景 最近在專案開發過程中遇到的問題,消耗了比較久的時間,過程曲折,雖然最終達到目的,但是鑑於各種常用的雲資料在物件儲存方面大同小異,所以記錄一下。 理一下思路: 我們在呼叫第三方物件儲存API的時候,通常需要解決以

移動端壓縮圖片獲取圖片並壓縮。lrz.all.bundle.js外掛。 accept="image/*"載入慢的問題

檢視下載地址:http://www.cnblogs.com/52fhy/p/5355601.html 檢視input[type='file']的圖片路徑。在我的另一篇部落格:http://blog.csdn.net/qq_33769914/article/details/5

ckeditor添加自定義按鈕整合swfupload實現批量圖片

下載 了解 nbsp 文件 mouseover 去掉 dial size pro ckeditor添加自定義按鈕整合swfupload實現批量上傳圖片給ckeditor添加自定義按鈕,由於ckeditor只能上傳一張圖片,如果要上傳多張圖片就要結合ckfinder,而ckf

修改帝國CMS默認圖片附件路徑

load 默認 行修改 方法 需要 想要 成功 教程 左右 帝國CMS系統設置中的“附件地址”設置是不生效的,無論設置成什麽都還是在 d/file/ 下,下面牛教程介紹手動修改附件存放地址的方法。 一:先在系統設置中將“附件地址”一項修改為自己想要的地址,這裏以 /uplo

iOS 批量圖片的 3 種方法

except 現在 文章 rap 鏈式調用 bsp 不知道 working truct AFNetworking 在去年年底升級到了 3.0。這個版本更新想必有很多好處,然而讓我吃驚的是,它並沒有 batch request 接口。之前的 1.x 版本、2.x 版本都實現

WebApi接收微信小程式圖片(二進位制檔案流)並儲存在伺服器指定路徑

找了好多天都沒找到小程式批量上傳圖片的方法,然後我現在的邏輯是: 取到上傳圖片的集合,迴圈呼叫小程式wx.UploadFile方法,依次上傳 後端取到檔案之後生成唯一MD5碼(相同的檔案生成的MD5碼是唯一的),然後取前兩位後兩位建立資料夾,儲存圖片前判斷下圖片是否存在。(

ASP批量和編輯圖片

關於這個問題也算是老生常談,但是我相信還是有不會的朋友。寫這篇文章主要是對那些需要的朋友,對於大牛,就可以不看了。,寫的不好,還請大牛指點一二啊。 本人QQ:1127173874. 第一,相關的JS檔案和上傳類,主要是jquery-1.4.2.js和jquery.livequery.js,U

純js批量預覽圖片

前提:<script src="js/jquery.min.js"></script> 參考:http://www.jq22.com/jquery-info833 1.頁面程式碼 <!--第一張-->