最簡單的文件上傳方法
???
??????? 文件上傳是基本運用,因而討論的也多,方法五花八門。那么什么樣的方法是最好的方法呢,應該是代碼最少,最好理解的方法。?
??? 用標簽處理文件上傳,幾個屬性控制文件大小、文件類型等特性,應是最理想的方法。
??? newxy(新坐標)用標簽來處理文件上傳,不用寫代碼,比smartUpload簡便。
???
上 傳 文 件 至 文 件 夾
利用
newxy
(
新坐標
)
技術上傳文件至文件夾極其簡單。
一、準備
1
、確保有
struts
運行環境;
2
、下載
newxy1.03.zip
或更高版。解壓,將
newxy1.03.jar
或更高版類庫拷到
WEB-INF/lib
下,將
newxy-html.tld
、
newxy-logic.tld
、
newxy-bean.tld
三個標簽定義文件拷到
WEB-INF/
目錄下;
3
、建一
jsp
文件,如
upload.jsp
?
二、
jsp
文件
<%@ page contentType="text/html; charset=GBK" %>
<%@ tagliburi="/WEB-INF/newxy-html.tld" prefix="nhtml"%>
<%@ tagliburi="/WEB-INF/newxy-logic.tld" prefix="nlogic"%>
<nlogic:action1 id="act1" formName="fileForm"/>
<nhtml:form action="" formName="fileForm" enctype="multipart/form-data">
?
文件夾:
<input type="text" name="_directory" size="40"/><br />
?
文件
1,
不大于
1024K
:
<nhtml:file property="file1" size="40" maxSize="1024"fileLimit="zip"/><br />
?
文件
2,
不大于
1024K
:
<nhtml:file property="file2" size="40" maxSize="1024"fileLimit="zip"/><br />
</nhtml:form>
<nhtml:buttonactionId="act1" method="upload" value=”
文件上傳
”/>
三、說明
可以不寫
java
代碼實現文件上傳。
1
、本例一次可以上傳兩個文件,理論上可以一次上傳無限多個文件,上傳多個文件時,
property
屬性值不能相同。
2
、本例上傳文件不大于
1024K
字節,文件上傳最大值由
maxSize
屬性值確定,如果此值為空,最大值不大于
struts
設置的最大值,默認為
250M
。
3
、本例上傳文件擴展名限于
”zip”
,
上傳文件的擴展名由
fileLimit
屬性值指定,如果
fileLimit
值為空,上傳文類型不受限制
4
、上傳文件保存在
_directory
屬性值指定的文件夾中。
_directory
可以是絕對路徑如
c:\temp
,也可以是
URI
,如
images
,
images
是
WEB
上下文下的一個文件夾。
5
、標簽
<nhtml:form action="" formName="fileForm" />
的
action
屬性是空值,表明以當前路徑作為
頁面表單的
action
值。
formName
屬性值與標簽
<nlogic:action1 id="act1" formName="fileForm"/>
的
formName
屬性值相同。
6
、標簽
<nlogic:action1 id="act1" formName="fileForm"/>
產生靜態頁面的
javascript
函數:
act1
Upload(...){...}
。點擊“文件上傳”按鈕將調用這個函數。結果是將數據提交上來由標簽
nlogic:action1 id="act1" formName="fileForm"/>
來處理,將文件內容寫到指到的路徑。
7
、標簽
<nhtml:buttonactionId="act1" method="upload" value=”
文件上傳
”/>
的
onclick
事件調用
act1
Upload()
方法。
上 傳 文 件 至 數 據 庫
利用
newxy
(
新坐標
)
技術上傳文件至數據庫極其簡單。
一、準備
1
、確保有
struts
運行環境;
2
、下載
newxy1.03.zip
或更高版。解壓,將
newxy1.03.jar
或更高版類庫拷到
WEB-INF/lib
下,將
newxy-html.tld
、
newxy-logic.tld
、
newxy-bean.tld
三個標簽定義文件拷到
WEB-INF/
目錄下,將
newxy.properties
文件拷到
WEB-INF/classes
下,并根據需要進行設置;
3
、建一
jsp
文件,如
upload.jsp
二、
jsp
文件
???????????? <%@ page contentType="text/html; charset=GBK" %>
???????????? <%@ tagliburi="/WEB-INF/newxy-html.tld" prefix="nhtml"%>
???????????? <%@ tagliburi="/WEB-INF/newxy-logic.tld" prefix="nlogic"%>
????????
<nlogic:action1 id="act1" formName="fileForm"/>
<nhtml:form action="" formName="fileForm" enctype="multipart/form-data">
?
數據庫表名:
<input type="text" name="_table" size="40"/><br />
?
說明:
<input type="text" name="explain" size="40"/><br />
?
不大于
1024K
:
<nhtml:file property="field1" size="40" maxSize="1024"/><br />
?
不大于
1024K
:
<nhtml:file property="field2" size="40" maxSize="1024"/><br />
</nhtml:form>
<nhtml:buttonactionId="act1" method="update"/>
?
三、說明
可以不寫
java
代碼實現文件上傳。
1
、
_table
為保留屬性,其值是數據庫表名。
2
、
newxy
(
新坐標
)
實現文件上傳至數據庫,可以同時保存文件名、文件類型、大小、擴展名等信息。
標簽<nhtml:file />詳解
文件名:
|
上傳的文件名保存到某字段中,保存文件名的字段名由
<nhtml:file/>
標簽
fileNameField
元素值指定。
|
文件大小:
|
上傳的文件大小保存到某字段中,保存文件大小的字段名由
<nhtml:file/>
標簽
fileSizeField
元素值指定。本例上傳文件不大于
1024K
|
文件類型:
|
上傳的文件類型保存到某字段中,保存文件類型的字段名由
<nhtml:file/>
標簽
fileTypeField
元素值指定。
|
文件擴展名:
|
上傳的文件擴展名保存到某字段中,保存文件擴展名的字段名由
<nhtml:file/>
標簽
fileExtendNameField
元素值指定。
|
限制類型:
|
上傳文件的限制類型由
<nhtml:file/>
標簽
fileLimit
元素值指定。如
fileLimit
="jsp"
,只能上傳
jsp
文件。本例不限制。
|
?
3
、
property
屬性值是保存文件內容的字段名。
4
、上傳文件大小由
maxSize
屬性值確定,本例可同時上傳二個文件,上傳文件不大于
1024K
。理論上同時上傳文件數量不限,上傳成功與否會提示給用戶。如果
maxSize
為空,最大值不大于
struts
設置的最大值,默認最大值為
250M
。
5
、標簽
<nhtml:form action="" formName="fileForm" />
的
action
屬性是空值,表明以當前路徑作為
頁面表單的
action
值。
formName
屬性值與標簽
<nlogic:action1 id="act1" formName="fileForm"/>
的
formName
屬性值相同。
6
、標簽
<nlogic:action1 id="act1" formName="fileForm"/>
產生靜態頁面的
javascript
函數:
act1
Update(
...){...}
。點擊“文件上傳”按鈕將調用這個函數。結果是將數據提交上來由標簽
nlogic:action1 id="act1" formName="fileForm"/>
來處理,將文件內容寫到數據庫的字段中。
7
、標簽
<nhtml:buttonactionId="act1" method="update" value=”
文件上傳
”
/>
的
onclick
事件調用
act1
Update()
方法。
newxy(新坐標)技術網站:http://www.newxy.net
posted on 2006-07-18 18:35
newxy新坐標 閱讀(701)
評論(0) 編輯 收藏