欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Struts1.2怎么實現(xiàn)動態(tài)多文件不定個數(shù)上傳

這篇文章主要講解了“Struts1.2怎么實現(xiàn)動態(tài)多文件不定個數(shù)上傳”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Struts1.2怎么實現(xiàn)動態(tài)多文件不定個數(shù)上傳”吧!

創(chuàng)新互聯(lián)建站-成都網(wǎng)站建設(shè)公司,專注成都網(wǎng)站制作、做網(wǎng)站、網(wǎng)站營銷推廣,域名與空間,虛擬空間,網(wǎng)站托管、服務(wù)器托管有關(guān)企業(yè)網(wǎng)站制作方案、改版、費用等問題,請聯(lián)系創(chuàng)新互聯(lián)建站

Struts1.2依然是應(yīng)用很廣的框架,實現(xiàn)動態(tài)多文件(不定個數(shù))上傳請先看下面的代碼

關(guān)鍵代碼

< SCRIPT language=javascript type=text/javascript >
function createElement(tagName, type, name)
{
var element = null;
try
{
element = document.createElement('<' + tagName + '
name="'+name+'" size=30 onchange="add();"/>');
element.type = type;
element.value = value;
}
catch (e)
{
}
if ( ! element)
{
element = document.createElement(tagName);
element.setAttribute("type", type);
}
return element;
}
// 動態(tài)創(chuàng)建表單控件的方法
var i = 1;
function add()
{
// 動態(tài)創(chuàng)建控件名稱
var name = "attachment" + i;
var input1 = createElement("input", "file", name);
var br = document.createElement("
");
var files = document.getElementById("files");
files.appendChild(br);
files.appendChild(input1);
i ++ ;
}
< /SCRIPT>

< DIV id=files>
< INPUT onchange=add(); alt=選擇后即可動態(tài)添加文件域 size=30 type=file name=attachment0>
< INPUT onclick=add(); value=多個附件 alt=手動添加文件域 type=button >

Action中的關(guān)鍵代碼:

FormFile[] formFile = null;
// 得到所有的文件請求元素
Hashtable files = bbsForm.getMultipartRequestHandler()
.getFileElements();
if (files != null && files.size() > 0)
{
// 初始化FormFile
formFile = new FormFile[files.size()];
// 得到files的keys
Enumeration enums = files.keys();
String fileKey = null;
int i = 0;
// 遍歷枚舉
while (enums.hasMoreElements())
{
// 取得key
fileKey = (String) (enums.nextElement());
System.out.println("key:" + fileKey);
// 初始化每一個FormFile(接口)
formFile[i] = (FormFile) files.get(fileKey);
// 分別上傳
upload(formFile[i], request, bbs);
i++;
}

upload方法:

/** *//**
* 文件上傳的方法
* 
* @param file
* @param request
* @param bbs
*/
public void upload(FormFile file, HttpServletRequest request, Bbs bbs)
{
//只有選擇了文件時才上傳
if ("".equals(file.getFileName()) || null == file.getFileName())
{
return ;
}
// 得到當(dāng)前網(wǎng)站的絕對路徑
String path = this.getServlet().getServletContext().getRealPath("/");
FileOutputStream fileOutput;
try
{
// 文件操作
fileOutput = new FileOutputStream(path + "main/upload/"
+ file.getFileName());
fileOutput.write(file.getFileData());
fileOutput.flush();
fileOutput.close();
log.info("BbsAction:附件上傳成功");
}
catch (FileNotFoundException e)
{
log.info("BbsAction:找不到文件");
}
catch (IOException e)
{
log.info("BbsAction:文件IO異常");
}
// 數(shù)據(jù)庫操作
Fileupload fileupload = new Fileupload();
String basePath = request.getScheme() + "://" + request.getServerName()
+ ":" + request.getServerPort() + request.getContextPath()
+ "/";
fileupload.setFilename(basePath + "/main/upload/" + file.getFileName());
// 得到文件的擴展名
int point = file.getFileName().lastIndexOf(".");
String ext = file.getFileName().substring(point + 1);
//擴展名處理
if ("jpg".equals(ext.toLowerCase()) || "bmp".equals(ext.toLowerCase())
|| "gif".equals(ext.toLowerCase()))
{
ext = "img";
}
if ("rar".equals(ext.toLowerCase()) || "zip".equals(ext.toLowerCase())
|| "jar".equals(ext.toLowerCase()))
{
ext = "rar";
}
if("txt".equals(ext.toLowerCase()) || "sql".equals(ext.toLowerCase()) || "ini".equals(ext.toLowerCase()))
{
ext = "txt";
}
fileupload.setFileext(ext);
fileupload.setFilesize(file.getFileSize());
fileupload.setUptime(new Date());
fileupload.setDowncount(0);
fileupload.setUpuser(((User) request.getSession().getAttribute("user"))
.getUserName());
fileupload.setFlag((short) 0);
fileupload.setAnnounceId(bbs.getAnnounceId());
fileupload.setName(file.getFileName());
fileuploadManager.save(fileupload);
log.info("BbsAction:附件信息已經(jīng)成功保存到數(shù)據(jù)庫");
}

這樣就實現(xiàn)的動態(tài)的多文件上傳.關(guān)鍵還是

Hashtable files = bbsForm.getMultipartRequestHandler()
.getFileElements();

的處理.

感謝各位的閱讀,以上就是“Struts1.2怎么實現(xiàn)動態(tài)多文件不定個數(shù)上傳”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Struts1.2怎么實現(xiàn)動態(tài)多文件不定個數(shù)上傳這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

網(wǎng)站名稱:Struts1.2怎么實現(xiàn)動態(tài)多文件不定個數(shù)上傳
文章出自:http://chinadenli.net/article8/gsheop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站靜態(tài)網(wǎng)站自適應(yīng)網(wǎng)站手機網(wǎng)站建設(shè)虛擬主機網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管