發新話題

ASP上傳圖片自動生成縮略圖解決方案

ASP上傳圖片自動生成縮略圖解決方案

  說明:本功能基於Dreamweaver MX實現

    ------- 支持中文
    ------- 支持文件改名上傳
    ------- 支持session模式上傳
    ------- 支持分類上傳
    ------- 自動生成縮略圖 支持格式 bmp/jpg/gif/png
    ------- 支持定制生成圖片(採樣方式/旋轉/銳化/文字添加/寬高/輸出格式/等)

 需要:IIS服務器 、上傳插件Pure Asp file Upload 2.09 、 第三方組件AspJpeg

     軟件包名:asp_image_generate

        / aspjpeg.exe 第三方組件

        / pure_asp_upload.mxp 上傳插件

        / pau_漢化包 pure_asp_upload.mxp 的漢化包

        / readme.txt 說明文件

        / lesson.mht 教程文件



 操作步驟:

 1. 在安裝有IIS服務器的前提下 安裝AspJpeg 1.2 --


2. 安裝DWMX插件 Pure Asp file Upload 2.09(英文原版) --

3. 拷貝漢化包內的所有文件至安裝文件夾下覆蓋完成漢化
   這裡你可以使用windows的文件搜索功能 在系統安裝盤內分別搜索incPureUpload.asp(1個),
   Pure ASP Upload.htm(3個),Pure ASP Upload.js(3個),找到後用漢化文件覆蓋


Tip. 漢化版的優點


4. 安裝完成後打開SqlServer 企業管理器建立數據庫dovia,並如圖建立一個表mypubuploadb

Tip. 這裡也可以使用 Access數據庫 , 相關設置可以參考 Aspjpeg 的幫助文檔
 5. 打開DwMX 定義ASP/VBScript 新站點,定義數據庫連接,這裡使用系統DSN
   注意:站點根目錄下新建一個uploadimges 用來存放上傳的文件


6. 新建asp頁面,如:myupload0.asp 如下圖插入form 並作相應調整
   其中有一個隱藏域取的是服務器時間 手工添加 value="<%=Now()%>"
   另外兩個隱藏域為上傳圖片的高和寬的值,它們將由PAFU程序自動插入,這裡無需設置


7. 在同一asp頁面新建一個記錄集,取的記錄就是表mypubuploadb的數據


8. 新建兩個session,一個名為"PPP1",另一個為「PPP0」
   這裡建立的session將接受Pure asp upload 程序文件處理後傳來的值,並被接下來的command所用


9. 在同一asp頁面新建 command 注意command程序位置應該在頁首
   這個command的目的是更新數據表中字段smallpicSrc的值
   原理:上傳文件時,結合Aspjpeg 的 上傳處理文件incPureUpload.asp 先通過insert行為將大圖片路徑信息插入到表中
   bigpicSrc字段,並通過以上建立的session傳回兩個值,一個是大圖片的路徑,另一個是小圖片的路徑。當asp跳轉頁面時
   (在添加insert服務器行為時選擇的跳轉功能),即使用此command插入小圖片路徑信息至字段smallpicSrc



10. 添加Pure Asp file Upload 服務器行為
   如圖,安提示作,注意下圖中 頁面跳轉 不填

主菜單設置


高級選項設置

確定


完成後的站點文件夾

11. 在同一asp頁面插入insert 服務器行為
   如圖操作,注意 跳轉頁面 必須選擇


12. 在同一asp頁面選擇合適位置綁定第7步建立的記錄集數據到頁面,目的是顯示已經上傳的縮略圖
   縮略圖寬和高不設定



13. 保存文件 基本工作完成.在IIS服務器裡定義站點或虛擬目錄,瀏覽測試
   縮略圖完全自動生成,並且保持比例縮放


★. 進階討論 ★★★★★★★★★★★★★★
  
    關於生成的的縮略圖:包括高度/寬度/格式/採樣方式/銳化程度/旋轉程度/添加文字/等均可以定制

    本例已將最常用功能結合到相關文件 請打開站點目錄下文件夾ScriptLibrary內的incPureUpload.asp


分析相關代碼


--------------------------------------------------------------------------------


' Aspjpeg 功能設置
Set Jpeg = Server.CreateObject("Persits.Jpeg")

' 獲取源圖片路徑
Path = Server.MapPath("uploadimages/")&"/"&FileName

' 打開源圖片
Jpeg.Open Path

' 設定生成縮略圖細節 這裡有很多種設定方法 下面的方法是先判斷寬高比 然後按比例縮放

If Jpeg.OriginalWidth / Jpeg.OriginalHeight > 1 then
Jpeg.Width = 98
Jpeg.Height = int((98/Jpeg.OriginalWidth)*Jpeg.OriginalHeight)

elseif Jpeg.OriginalWidth / Jpeg.OriginalHeight < 1 then
Jpeg.Height = 98
Jpeg.Width= int(Jpeg.OriginalWidth*(98/Jpeg.Height))

end if


' 設定銳化效果
Jpeg.Sharpen 1, 130
' 向指定路徑生成縮略圖
Jpeg.Save Server.MapPath("uploadimages/")&"/small"&FileName

' 注意這兩個Session
Session("PPP0")=GP_curPath&FileName
Session("PPP1")=GP_curPath&"small"&FileName




教程源代碼下載

[ 本帖最後由 蔡逸竹 於 2006-12-1 19:11 編輯 ]
附件: 您所在的用戶組無法下載或查看附件

TOP

附件裡未包含
/ aspjpeg.exe 第三方組件
/ pure_asp_upload.mxp 上傳插件
/ pau_漢化包 pure_asp_upload.mxp 的漢化包
/ readme.txt 說明文件
/ lesson.mht 教程文件
只有完成後的作品...嗚嗚嗚

重要的東西都沒在附件包裡面

TOP

發新話題

本站所有圖文均屬網友發表,僅代表作者的觀點與本站無關,如有侵權請通知版主會盡快刪除。