今天應項目的要求做了個防止IE中圖片被下載的東東!
需說不是絕對的,但對於一般人來說來是可以的---個人認為:)
下面來看看實 現個程吧!
1. 前台界面:
1
<
asp:DataList
ID
="dgClient"
Runat
="server"
RepeatColumns
="2"
>
2
<
ItemStyle
Width
="50%"
></
ItemStyle
>
3
<
ItemTemplate
>
4
<
table
>
5
<
tr
>
6
<
td
>
7
<
img
src
='./ShowImage.aspx?PATH=<%#
Server.UrlEncode(DataBinder.Eval(Container.DataItem,"DTSmallImage").ToString())%
>
' border='0' width="133" height="100" />
8
</
td
>
9
<
td
class
="intro0"
>
10![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
<%
#DataBinder.Eval(Container.DataItem,"DTTitle")
%>
11
<
br
>
12
會員免費下載
<
br
>
13
>>
<
a
href
='<%#DataBinder.Eval(Container.DataItem,"DTBigImage")
%
>
'>下載1024*768
</
a
>
14
<
br
>
15
>>
<
a
href
='<%#DataBinder.Eval(Container.DataItem,"DTSmallImage")
%
>
'>下載800*600
</
a
>
16
<
br
>
17
</
td
>
18
</
tr
>
19
</
table
>
20
</
ItemTemplate
>
21
</
asp:DataList
>
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
10
![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![ContractedBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
19
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
20
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
21
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
其主要為以下這句代碼:
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
我是怎麼防止用戶截頻來 獲得正確的圖片的吧
2.ShowImage.aspx文件的後台代碼
1
string
path
=
Request.QueryString[
"
PATH
"
];
2
string
EArtURL
=
ConfigurationSettings.AppSettings[
"
EArtURL
"
];
3
path
=
EArtURL
+
"
/NetWorkMamage1/DeskTopSmallImages/
"
+
path;
4
System.Net.WebClient client
=
new
System.Net.WebClient();
5
string
ExpFileName
=
FileLib.GetFileExName(path);
6
string
LocalPath
=
Server.MapPath(
"
./new111.
"
+
ExpFileName );
7
if
(System.IO.File.Exists(LocalPath))
8![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
9
FileLib.DeleteFile(LocalPath);
10
}
11
client.DownloadFile(path,LocalPath);
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
8
![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![ContractedBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
當前站台下面的臨時文件中,圖上為當前目錄下的new111.jpg,因顯示的圖片 是不確定的個數也不確定,所以保存前先刪除掉其下原來的臨時文件,已保正
當前臨時文件為最新的文件
1
System.IO.StreamReader reader
=
new
System.IO.StreamReader(LocalPath);
2![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
System.IO.Stream stream
=
reader.BaseStream;
4
byte
[] bys
=
new
byte
[stream.Length];
5
stream.Read(bys,
0
,(
int
)stream.Length);
6
System.IO.MemoryStream memory
=
new
System.IO.MemoryStream(bys,
0
,(
int
)stream.Length);
7
stream.Close();
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
有以上代碼那麼在下載第二個臨時文件時,定會因第一個文件正在使用而無
法保存,怎麼說:大家想想一般緩沖輸出圖片都是將這 個圖片所占的硬盤空
間讀入到內存中再輸出,因現在只存在一個臨時圖片文件,後來的文件確需
要刪除先前的文件以保持最新的操作(即 DataList每次邦定時都會調用ShowImage.aspx文件來顯示當前圖片),但當前文件雙在使用中需無法刪除或
保存,所以本人才采用 以上代碼來創建當前圖片文件的一個備份放入MemoryStream,再結束對實際圖片的調用stream.Close();
1
ImagesEntry.ScaleImagesLib scanle
=
new
ImagesEntry.ScaleImagesLib();
2
if
(scanle.Create(memory,
133
,
100
))
3![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
4
scanle.Show();
5
}
6
if
(scanle.LastError
!=
null
)
7![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
8
//輸出出錯圖片
9
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![ContractedBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![ContractedBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
以上代碼是對圖片對進縮放處理
還可以對要顯示的圖片加上透明,水印,模糊處理等等,總之能讓其截頻出
也達不到實際的效果。
以 上是偶的一定愚見
還望大多多指正:)