我們的音樂站以前由于圖檔放在196上導緻連接配接數過多,使用者無法聽歌,後來所有音樂站專輯的圖檔就轉到了資料庫中.那知道現在就變成了資料庫連接配接數過多或者是連接配接池不夠了,導緻網站經常報錯,那好吧,圖檔又轉移.這會就直接轉移到web伺服器上了,直接作為一般的網站圖檔存放.
龔軍勇已經寫了個程式把所有資料庫的圖檔轉移到web伺服器上了,但是現在要更新新專輯怎麼辦?于是龔提出的一個辦法就是專門寫了一個頁面,執行這個頁面,把專輯id傳過去,那麼就可以把資料庫中的圖檔複制到web伺服器.個人覺得這個方法還是比較麻煩,但是要在web伺服器上開ftp吧似乎也不好,于是我想到了一個辦法,那就是在音樂站中寫一個webservice,然後在專輯上傳程式中調用這個webservice就可以把圖檔寫到web伺服器上,而不需要在伺服器上再開啟其他的什麼服務.
具體做法如下:
服務端:
[webmethod]
public string writepic(byte[] src, int id)//src為圖檔位元組數組,id為專輯的id
{
try
memorystream msimage = new memorystream(src);
image imgfile = image.fromstream(msimage);
string path = server.mappath(".");
imgfile.save(path + "\\" + id + ".jpg", imageformat.jpeg);
imgfile.dispose();
}
catch (exception ex)
return ex.message;
return "success";
用戶端調用:
filestream fs = new filestream(filename, filemode.open);
binaryreader br = new binaryreader(fs);
byte[] pic=br.readbytes((int)fs.length);
usingwebservice.localhost.service s = new usingwebservice.localhost.service();//調用web服務
messagebox.show(s.writepic(pic,convert.toint32(textbox1.text)));//顯示操作結果
br.close();
fs.close();