C#開發之上傳圖片到WebService

實例說明:
WebService的用途越來越廣泛,客戶端程序(交警通)需要將日常上報問題上傳到Web服務端,上報問題中可以包含圖片,但是圖片文件的上傳佔用資源較多,所以單獨開闢一個WebMethod方法供多媒體上傳下載使用。

[WebMethod]
        public string UploadMedia(string functionName, byte[] bs) {

            string s = "2";
            try {
                Tools tt = new Tools();
                s = tt.SaveMedia(functionName, bs);
                if("1".Equals(s)) {

                    s = "0";//一行數據更新表示保存成功
                } else {
                    s = "1";
                }

            } catch(Exception e) {

                Console.WriteLine(e.ToString());
            }
            return s;
        }

代碼說明:
WebMethod UploadMedia方法用來上傳圖片等多媒體,參數爲functionName和圖片字節流。多媒體文件上傳後,保存到多媒體共享目錄,並添加索引到數據庫表。
根據操作數據庫後影響的行數來判斷是否上傳成功,成功返回0.

/// <summary>
        /// 功能:保存多媒體文件並寫入數據庫
        /// </summary>
        /// <param name="functionName">taskid01_jpg</param>
        /// <param name="fileStream">多媒體文件流</param>
        /// <returns>返回影響的行數</returns>
  public string SaveMedia(string functionName, byte[] bs) {

            string returnRow = "0";
            try {
                //保存多媒體文件
                string[] temp = functionName.Split('_');
                string id = temp[0].ToString();
                string name = temp[1].ToString();
                string userid = temp[0].ToString().Substring(8, 3);

                string fileName = "E:\\Shares\\"+id+"."+name;
                FileInfo fileInfo = new FileInfo(fileName);
                if (File.Exists(fileName))
                {
                    File.Delete(fileName);
                }
                if (!fileInfo.Directory.Exists) {
                    fileInfo.Directory.Create();
                }
                FileStream fs = new FileStream(fileName, FileMode.CreateNew, FileAccess.Write, FileShare.None, bs.Length, false);
                fs.Write(bs, 0, bs.Length);
                fs.Close();

                //修改數據表
                string sql = "insert  into Media (id,name,userid) values  ('"+id+"', '"+name+"', '"+userid+"' )";
                GetDataFromDB getDataFromDB = new GetDataFromDB();
                returnRow= getDataFromDB.UpdateServiceDatasFromTable(sql);


            }catch(Exception e){

                Console.WriteLine(e.ToString());
            }
            return returnRow;
        } 

 代碼說明:
 保存多媒體文件,並添加數據到數據庫表中。

發佈了90 篇原創文章 · 獲贊 13 · 訪問量 31萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章