Office中國(guó)論壇/Access中國(guó)論壇

 找回密碼
 注冊(cè)

QQ登錄

只需一步,快速開始

12345下一頁(yè)
返回列表 發(fā)新帖
查看: 9837|回復(fù): 38
打印 上一主題 下一主題

我的圖片顯示方案以及ADP/SQL/ASP.NET成套解決方案

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2003-10-30 22:11:00 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
本人最近在幫別人定制一個(gè)小小的系統(tǒng),以便讓一個(gè)小小的貿(mào)易公司能提高效率。

在進(jìn)行到產(chǎn)品維護(hù)的時(shí)候,對(duì)方要求最好能在瀏覽產(chǎn)品的同時(shí)也能顯示一幅小的圖片。這個(gè)能大大增加系統(tǒng)功能的說(shuō)服力,所以我也答應(yīng)了。在具體實(shí)施過程中,走了不少?gòu)澛罚饕膯栴}是安全性和方便性不能同時(shí)得到保證。

目前的解決方案,我認(rèn)為在安全性、方便性和性能之間找到了某種較佳的平衡。下面我就把我的方案思路告訴你們。我想有經(jīng)驗(yàn)的開發(fā)人員能夠立即明白,而且能夠開發(fā)出更好的方案來(lái)。

本帖被以下淘專輯推薦:

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 分享淘帖1 訂閱訂閱
2#
 樓主| 發(fā)表于 2003-10-30 22:19:00 | 只看該作者
系統(tǒng)結(jié)構(gòu)是比較簡(jiǎn)單的:

服務(wù)器:                                                                                 
[域控制器](提供域用戶身份認(rèn)證)
[數(shù)據(jù)庫(kù)服務(wù)器](采用windows身份認(rèn)證)
[IIS服務(wù)器-內(nèi)網(wǎng)網(wǎng)站] (網(wǎng)站采用windows身份認(rèn)證)

客戶端:
ADP客戶端程序
IE瀏覽器
加入域。

如果是工作組的情況,服務(wù)器是同一臺(tái)機(jī)器,這樣也完全一樣。

業(yè)務(wù)數(shù)據(jù)庫(kù)放在sql server中,圖片目錄隨意,例如c:\photos,當(dāng)然,用c:\_jjf67HFw832i92之類的更好些。連猜都猜不到。設(shè)置這個(gè)目錄的用戶權(quán)限。建立圖片虛擬目錄在內(nèi)網(wǎng)網(wǎng)站上,可以讀寫。

基本的部署就這些了。下面看一些開發(fā)的效果圖。
3#
 樓主| 發(fā)表于 2003-10-30 22:26:00 | 只看該作者
今天怎么回事,上傳圖片總是不成功。等下次好了我再把這個(gè)話題續(xù)完。
[em03][em03][em03]
4#
 樓主| 發(fā)表于 2003-10-30 23:21:00 | 只看該作者
大概是我的瀏覽器設(shè)置偏嚴(yán)格了。文件都上傳了,今天還剩下2個(gè)。

這個(gè)是用戶在ADP里面操作時(shí)候的情況。當(dāng)光標(biāo)在列表中移動(dòng)時(shí),下面詳細(xì)內(nèi)容,包括圖片,也一起跟著變化。


[此貼子已經(jīng)被作者于2003-10-30 15:25:30編輯過]

5#
 樓主| 發(fā)表于 2003-10-30 23:48:00 | 只看該作者
窗體的current事件程序:


每當(dāng)一條記錄顯示以后,用webBrowser5這個(gè)瀏覽器控件調(diào)用ASP.NET中的thumbnail.aspx來(lái)顯示一個(gè)產(chǎn)品圖片的縮略圖。你可以看到,由于傳遞的參數(shù)是productID,即產(chǎn)品編號(hào),所以用戶根本不知道圖片的位置在哪里。同時(shí)將“放大或修改圖片”的連接指向正確的位置。

速度非常非?。服務(wù)器是普通的pc機(jī),PIII 667,512M便宜的現(xiàn)代內(nèi)存,是域控制器、數(shù)據(jù)庫(kù)服務(wù)器和WEB服務(wù)器。

當(dāng)用戶選擇“放大或修改圖片”時(shí),在新的瀏覽器窗口打開thumbnail(只讀用戶)或者pictureUpload網(wǎng)頁(yè)(全權(quán)用戶)。

在圖中的代碼中,PRODUCT_PICTURE_URL是個(gè)常量,但是并非圖片儲(chǔ)存的實(shí)際或者虛擬目錄,而是thumbnail.aspx和pictureUpload.aspx的路徑。實(shí)際的內(nèi)容例如:
"http://mainServer/utility/"。

thumbnail.aspx的后面除了接受產(chǎn)品編碼以外,還接受縮略圖尺碼,這里是140x110(目前實(shí)際是按比例輸出,所以只用了一個(gè)140,即寬度)。在顯示大圖片的時(shí)候,就定為800。
6#
 樓主| 發(fā)表于 2003-10-30 23:57:00 | 只看該作者
下面來(lái)看網(wǎng)站中的thumbnail.cs中主要部分
為了顯示,把處理其他各式的部分,catch錯(cuò)誤處理部分省略了。



可以看到實(shí)際的路徑和數(shù)據(jù)庫(kù)處理方法在這兒。由于.cs文件最后都編譯成.dll文件放在/bin下面,所以即使可以得到這些文件,還是不知道系統(tǒng)的具體處理方法。

程序的開頭部分接受傳進(jìn)來(lái)的productID, height, width三個(gè)參數(shù),然后連接數(shù)據(jù)庫(kù),得到該產(chǎn)品的實(shí)際圖片文件名稱,然后處理產(chǎn)生縮略圖輸出。比較簡(jiǎn)單。
7#
 樓主| 發(fā)表于 2003-10-30 23:59:00 | 只看該作者
圖片配額用完。明天繼續(xù)。
8#
發(fā)表于 2003-11-1 19:27:00 | 只看該作者
很好!請(qǐng)繼續(xù)!
9#
 樓主| 發(fā)表于 2003-11-3 06:49:00 | 只看該作者
點(diǎn)擊“方法或修改圖片”后,就可以在一個(gè)瀏覽器窗口中上傳圖片。注意地址,根本沒有照片的路徑。事實(shí)上,即使萬(wàn)一讓用戶知道了實(shí)際照片路徑,他也沒有權(quán)利修改照片,因?yàn)檎掌夸浉揪筒还蚕。照片的修改?quán)是在IIS中給asp.net的機(jī)器帳戶的。

假定你了解ASP.NET的authentication和authorizaton,我想這些都不是什么問題。



本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號(hào)?注冊(cè)

x
10#
 樓主| 發(fā)表于 2003-11-3 06:52:00 | 只看該作者
如果是只讀用戶,他應(yīng)當(dāng)調(diào)用thumnail.aspx顯示一幅大尺寸的圖片。因?yàn)槲覀兊腁SP.NET登錄也是用windows集成安全方式,所以只讀的用戶無(wú)法打開pictureUpload.aspx這頁(yè)面。

您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則

QQ|站長(zhǎng)郵箱|小黑屋|手機(jī)版|Office中國(guó)/Access中國(guó) ( 粵ICP備10043721號(hào)-1 )  

GMT+8, 2024-10-23 08:23 , Processed in 0.458178 second(s), 36 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表