最簡單的文件上傳方法 ???
??????? 文件上傳是基本運用,因而討論的也多,方法五花八門。那么什么樣的方法是最好的方法呢,應該是代碼最少,最好理解的方法。?
??? 用標簽處理文件上傳,幾個屬性控制文件大小、文件類型等特性,應是最理想的方法。
??? 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