如何使用AspUpload組件上傳文件
一、摘要
Asp組件有內置的、服務器安裝時附帶的,更多的是第三方提供的,今天來學習文件上傳的其中一個組件aspupload組件使用方法。
二、aspupload組件的下載、安裝或注冊
1、asp組件的下載、安裝
(1)可以從網上下載。
(2)直接雙擊后進行安裝。
AspUpload組件下載
2、asp上傳組件的功能
a.限制上載文件的大小
b.設置用戶的權限
c.修改文件屬性
d.同時上載多個文件
e.能夠將文件保存到數據庫中
f.支持文件刪除,自動生成與服務器上文件不同名的文件
g.擁有管理權限的用戶甚至可以使用該控件進行遠程注冊
三、aspupload組件的簡單應用
1、實例一(1.asp):通過代碼實現三個文件的上傳功能。
如下圖所示:
(1)靜態頁面:1個表單,三個文件域,一個按鈕,其中表單form的動作如下。
(2)其中客戶端文件要注意幾點:
* 文件上載提交表單(Form)的enctype必須指定為“multipart/form-data”
* 語句表示上載文件域,用戶可以在該域中輸入或選定文件。
* 傳遞一個參數act(名稱可自己取),其值可以自己隨便定,目的是觸發上傳事件。
(3)動態代碼如下:
2、實例二(2.asp):修改程序1.asp,要求在上傳文件后顯示上傳文件的文件名及大小。
如下圖所示:
增加如下代碼:
respon.write("
文件1是:
")
respon.write(upload.files(1).path)
respon.write("
文件2是:
")
respon.write(upload.files(2).path)
respon.write("
文件3是:
")
respon.write(upload.files(3).path)
說明:
upload.files方法用來獲取文件的相關屬性,path是文件的路徑,size是文件的大小。
3、實例三(3.asp):修改程序2.asp,要求上傳的三個文件大小不能超過5K,如果上傳的文件已經存在則要求不覆蓋文件。
在上傳之前增加如下代碼:
upload.tmaxsize 5120,fal
upload.overwritefiles=fal
說明:
(1)upload.tmaxsize 5120,fal 其功能為設置文件最大為5120字節,fal參數說明當文件超過5120字節時則刪除超過部分,true參數說明當文件超過5120字節時則出錯。
(2)upload.overwritefiles=fal,其功能表示文件不進行覆蓋,如果上傳同樣文件名的文件,上傳后文件名自動會在后面添加一個數字。
四、自學第二個上傳文件的組件
1、Lyfupload組件的下載
2、學習此組件的安裝或注冊
3、通過課本例子進行文件的上傳
五、問題
1、傳到學校里服務器172.18.0.7運行時出現以下錯誤,Server.CreateObject 失敗
分析原因:學校服務器不支持aspupload上傳組件
2、如果服務器不支持aspupload等上傳組件,請大家使用無組件上傳功能(編寫代碼),見書本上P322,此類代碼比較復雜,同學們能夠拿來使用,無須自己編寫。
3、大家在網上申請個人空間時要看清服務器支持哪些組件,這樣有利于編寫代碼。
ASPUPLOAD上傳錯誤,如何解決?
在form中添加 ENCTYPE="multipart/form-data"
就是
<form action="" method="post" ENCTYPE="multipart/form-data" >
.....
用aspupload如何同時上傳兩張圖片,并以新命名的方式把路徑保存到數據庫?求高手解決?
ajax異步。
圖1圖2分別異步提交圖片到后臺。新名字的話也是后臺處理的。圖片存在空間里,把圖片名存在數據庫里。輸出圖片名到前臺
前臺圖1圖2后面可分別設一個隱藏的 input 用來ajax返回各自的圖片名。
總的提交按鈕只提交隱藏的input即可。(input里是圖片名,可同時提交多個input)
暫無圖片在第一次加載html時加載。每一次ajax上傳圖片除了返回圖片名到對應的input外,還同時js動態輸出新img標簽代替對應的暫無圖片,新img標簽要寫好完整的圖片地址。