這裡介紹的是一種利用webclient手動傳送stream到伺服器頁面的上傳檔案方法。
一、伺服器接收檔案
這裡使用乙個ashx頁面來接收和儲存silverlight傳來的stream,頁面**如下:
using這裡儲存檔案的主要流程就是接收上傳引數,準備儲存檔案,通過讀取上傳流儲存檔案內容。system;
using
system.collections.generic;
using
system.io;
using
system.linq;
using
system.web;
namespace
silverlight
//準備寫入檔案流
using
(filestream
fs =
file
.create(filepath + filename, 4096))
}//上傳成功
context.response.contenttype =
"text/plain"
; context.response.write(
"上傳成功"
); }
catch
(exception
e) }}
public bool
isreusable}}
}
二、客戶端傳送檔案
客戶端傳送檔案使用的是webclient類。
首先建立乙個webclient連線:
//準備上傳連線webclient
uploadclient =
new
webclient
();uploadclient.headers[
"content-type"
] =
"multipart/form-data"
;//連線開啟後的操作
uploadclient.openwritecompleted += uploadclient_openwritecompleted;
//流寫入完成後的操作
uploadclient.writestreamclosed += uploadclient_writestreamclosed;
//開啟上傳連線
uploadclient.openwriteasync(
new
uri(
"",
urikind
.relative),
"post"
, filestream);
webclient開啟連線後的處理:
voiduploadclient_openwritecompleted(
object
sender,
openwritecompletedeventargs
e) }
}}
webclient連線關閉後的處理:
void客戶端這邊主要就是開啟連線,然後開啟伺服器的接收流,然後傳輸檔案資料流到伺服器。uploadclient_writestreamclosed(
object
sender,
writestreamclosedeventargs
e)
else
}
Silverlight 客戶端本地訊息通訊
在silverlight 3 中新增了客戶端不同應用程式之間的通訊機制,當一台電腦上同時執行多個silverlight 應用程式的時候,本地訊息通訊可以在不同的silverlight之間建立乙個訊息通道,有點像是乙個socket鏈結,一方在監聽,一方傳送。public partial class l...
瘦客戶端 胖客戶端 智慧型客戶端
胖客戶端模式將應用程式處理分成了兩部分 由使用者的桌面計算機執行的處理和最適合乙個集中的伺服器執行的處理。乙個典型的胖客戶端包含乙個或多個在使用者的pc上執行的應用程式,使用者可以檢視並運算元據 處理一些或所有的業務規則 同時提供乙個豐富的使用者介面做出響應。伺服器負責管理對資料的訪問並負責執行一些...
胖客戶端 瘦客戶端和富客戶端
以c s結構開發的網路應用程式,需要為客戶端開發專用的客戶端軟體,相對而言其客戶端比較龐大,在客戶端可以實現很多功能,分擔伺服器的負擔,屬於胖客戶端型別。以b s結構開發的web應用,其客戶端只是乙個瀏覽器,所有業務邏輯由伺服器端進行處理,相對而言客戶端比較瘦小,故稱為瘦客戶端。目前比較流行的一種開...