Scott Zone
似水流年,勤勉無價
BlogJava
首頁
新隨筆
聯(lián)系
聚合
管理
posts - 27, comments - 14, trackbacks - 0
幾種js實(shí)現(xiàn)的動態(tài)多文件上傳
方式一:事先寫好多個input.在點(diǎn)擊時才顯示。也就是說上傳的最大個數(shù)是寫死了的。
HTML代碼:
<
p
>
<
a
href
='#'
onclick
='javascript:viewnone(more1)'
>
添加附件
</
a
>
<
div
id
='more1'
style
='display:none'
>
<
input
type
="file"
name
="attach1"
size
="50"
javascript:viewnone(more2)
>
</
span
>
</
div
>
<
div
id
='more2'
style
='display:none'
>
<
input
type
="file"
name
="attach2"
size
="50"
'
>
</
div
>
</
p
>
JS代碼:
<
SCRIPT language
=
"
javascript
"
>
function
viewnone(e)
{
e.style.display
=
(e.style.display
==
"
none
"
)
?
""
:
"
none
"
;
}
</
script
>
方式二:這種方式的動態(tài)多文件上傳是實(shí)現(xiàn)了的,很簡單。
HTML代碼:
<
input
type
="button"
name
="button"
value
="添加附件"
onclick
="addInput()"
>
<
input
type
="button"
name
="button"
value
="刪除附件"
onclick
="deleteInput()"
>
<
span
id
="upload"
></
span
>
JS代碼:
<
script type
=
"
text/javascript
"
>
var
attachname
=
"
attach
"
;
var
i
=
1
;
function
addInput()
{
if
(i
>
0
)
{
var
attach
=
attachname
+
i ;
if
(createInput(attach))
i
=
i
+
1
;
}
}
function
deleteInput()
{
if
(i
>
1
)
{
i
=
i
-
1
;
if
(
!
removeInput())
i
=
i
+
1
;
}
}
function
createInput(nm)
{
var
aElement
=
document.createElement(
"
input
"
);
aElement.name
=
nm;
aElement.id
=
nm;
aElement.type
=
"
file
"
;
aElement.size
=
"
50
"
;
//
aElement.value="thanks";
//
aElement.onclick=Function("asdf()");
if
(document.getElementById(
"
upload
"
).appendChild(aElement)
==
null
)
return
false
;
return
true
;
}
function
removeInput(nm)
{
var
aElement
=
document.getElementById(
"
upload
"
);
if
(aElement.removeChild(aElement.lastChild)
==
null
)
return
false
;
return
true
;
}
</
script
>
方式三:動態(tài)多文件上傳,只是在oFileInput.click();這個地方,這樣做就不能上傳這個文件了,因?yàn)榘l(fā)現(xiàn)它在上傳之時就把這個input中的文件置空了。很可能是為了安全著想吧!
另外還有一點(diǎn)就是說,click()只有在ie中才能正常運(yùn)行。
雖說這種方式最終沒能實(shí)現(xiàn)上傳,但還是留下來參考,看看是否有人可以真正實(shí)現(xiàn)上傳。
HTML代碼:
<
A
href
="javascript:newUpload();"
>
添加附件
</
A
>
<
TABLE
width
="100%"
border
="0"
cellpadding
="0"
cellspacing
="1"
>
<
TBODY
id
="fileList"
></
TBODY
>
</
TABLE
>
<
DIV
id
="uploadFiles"
style
="display:block"
></
DIV
>
JS代碼:
1
<
SCRIPT language
=
"
javascript
"
>
2
3
//
---新建上傳
4
function
newUpload()
{
5
var
oFileList
=
document.getElementById(
"
fileList
"
);
6
var
fileCount
=
oFileList.childNodes.length
+
1
;
7
var
oFileInput
=
newFileInput(
"
upfile_
"
+
fileCount);
8
if
(selectFile(oFileInput))
{
9
addFile(oFileInput);
10
}
11
}
12
13
14
//
----選擇文件
15
function
selectFile(oFileInput)
{
16
var
oUploadFiles
=
document.getElementById(
"
uploadFiles
"
);
17
oUploadFiles.appendChild(oFileInput);
18
oFileInput.focus();
19
oFileInput.click();
//
不能這樣做,可能是為了安全著想吧!
20
var
fileValue
=
oFileInput.value;
21
if
(fileValue
==
""
)
{
22
oUploadFiles.removeChild(oFileInput);
23
return
false
;
24
}
25
else
26
return
true
;
27
28
}
29
30
//
---新建一個文件顯示列表
31
function
addFile(oFileInput)
{
32
var
oFileList
=
document.getElementById(
"
fileList
"
);
33
var
fileIndex
=
oFileList.childNodes.length
+
1
;
34
var
oTR
=
document.createElement(
"
TR
"
);
35
var
oTD1
=
document.createElement(
"
TD
"
);
36
var
oTD2
=
document.createElement(
"
TD
"
);
37
38
oTR.setAttribute(
"
id
"
,
"
file_
"
+
fileIndex);
39
oTR.setAttribute(
"
bgcolor
"
,
"
#FFFFFF
"
);
40
oTD1.setAttribute(
"
width
"
,
"
6%
"
);
41
oTD2.setAttribute(
"
width
"
,
"
94%
"
);
42
oTD2.setAttribute(
"
align
"
,
"
left
"
);
43
oTD2.innerText
=
oFileInput.value;
44
oTD1.innerHTML
=
'
<
A href
=
"
javascript:removeFile('+ fileIndex + ');
"
>
刪除
</
A
>
';
45
46
oTR.appendChild(oTD1);
47
oTR.appendChild(oTD2);
48
oFileList.appendChild(oTR);
49
}
50
51
//
---移除上傳的文件
52
function
removeFile(fileIndex)
{
53
var
oFileInput
=
document.getElementById(
"
upfile_
"
+
fileIndex);
54
var
oTR
=
document.getElementById(
"
file_
"
+
fileIndex);
55
uploadFiles.removeChild(oFileInput);
56
fileList.removeChild(oTR);
57
}
58
59
//
---創(chuàng)建一個file input對象并返回
60
function
newFileInput(_name)
{
61
var
oFileInput
=
document.createElement(
"
INPUT
"
);
62
oFileInput.type
=
"
file
"
;
63
oFileInput.id
=
_name;
64
oFileInput.name
=
_name;
65
oFileInput.size
=
"
50
"
;
66
//
oFileInput.setAttribute("id",_name);
67
//
oFileInput.setAttribute("name",_name);
68
//
oFileInput.outerHTML = '<INPUT type=file id=' + _name + ' name=' + _name + '>';
69
//
alert(oFileInput.outerHTML);
70
return
oFileInput;
71
}
72
73
</
SCRIPT
>
74
第三種方式的改進(jìn)方案提示:
做一個
添加附件
然后做一個type為file的input框,把此框和span定位重疊起來 把file框透明度設(shè)置為0 即完全看不到,但是確實(shí)存在。這個時候點(diǎn)span的時候就是在點(diǎn)這個file框 但是看不到file框子 是不是實(shí)現(xiàn)了呢? 然后再結(jié)合你第二種的方式給框編號 動態(tài)增加就可以實(shí)現(xiàn)多文件上傳了 。
(本文轉(zhuǎn)自
http://www.tkk7.com/bnlovebn/archive/2007/01/26/96194.aspx
)
posted on 2007-07-12 17:23
Scott.Pan
閱讀(2780)
評論(1)
編輯
收藏
所屬分類:
代碼收藏夾
FeedBack:
#
re: 幾種js實(shí)現(xiàn)的動態(tài)多文件上傳
2014-08-25 15:54 |
11
最后一種不能用
回復(fù)
更多評論
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發(fā)表評論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關(guān)文章:
insertAdjacentHTML方法示例
轉(zhuǎn)JS校驗(yàn)
封裝了Jakarta 文件上傳功能的一個類(轉(zhuǎn))
幾種js實(shí)現(xiàn)的動態(tài)多文件上傳
動態(tài)WEB應(yīng)用中的用戶SESSION管理方案
JDBC之代碼復(fù)用(轉(zhuǎn))
目錄樹程序
Copyright ©2025 Scott.Pan Powered By:
博客園
模板提供:
滬江博客
<
2007年7月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(4)
給我留言
查看公開留言
查看私人留言
隨筆分類
Database
IM例舉(1)
J2EE(2)
JBPM(1)
Liferay(7)
SSH(2)
Web開發(fā)
代碼收藏夾(7)
生活記事(6)
目錄服務(wù)(3)
隨筆檔案
2007年8月 (5)
2007年7月 (22)
搜索
最新評論
1.?re: Portlet學(xué)習(xí)分析筆記[未登錄]
來學(xué)習(xí)一下
--zz
2.?re: 幾種js實(shí)現(xiàn)的動態(tài)多文件上傳
最后一種不能用
--11
3.?re: insertAdjacentHTML方法示例[未登錄]
1
--1
4.?re: Portlet學(xué)習(xí)分析筆記
寫的很不錯。學(xué)習(xí)了
--chailieyang
5.?re: insertAdjacentHTML方法示例
評論內(nèi)容較長,點(diǎn)擊標(biāo)題查看
--啊打發(fā)
閱讀排行榜
1.?insertAdjacentHTML方法示例(23458)
2.?經(jīng)典英語200句(4374)
3.?Portlet學(xué)習(xí)分析筆記(3634)
4.?SearchContainer的用法說明(2803)
5.?幾種js實(shí)現(xiàn)的動態(tài)多文件上傳(2780)
評論排行榜
1.?Portlet學(xué)習(xí)分析筆記(4)
2.?insertAdjacentHTML方法示例(2)
3.?幾種js實(shí)現(xiàn)的動態(tài)多文件上傳(1)
4.?經(jīng)典英語200句(1)
5.?Liferay項(xiàng)目中問題及解決方法列舉(1)
主站蜘蛛池模板:
亚洲综合色成在线播放
|
亚洲毛片在线免费观看
|
亚洲国产精品第一区二区三区
|
亚洲av区一区二区三
|
亚洲尤码不卡AV麻豆
|
亚洲精品国产精品国自产观看
|
国产成人免费AV在线播放
|
久久精品中文字幕免费
|
在线看片人成视频免费无遮挡
|
日韩免费观看一级毛片看看
|
中文亚洲成a人片在线观看
|
亚洲一区二区三区无码中文字幕
|
亚洲福利一区二区
|
理论秋霞在线看免费
|
国产成人久久AV免费
|
午夜小视频免费观看
|
亚洲av综合色区
|
亚洲色中文字幕在线播放
|
eeuss影院www天堂免费
|
国产精品69白浆在线观看免费
|
亚洲Av无码国产情品久久
|
亚洲黄页网在线观看
|
日韩视频免费在线观看
|
国产亚洲精品不卡在线
|
亚洲欧美aⅴ在线资源
|
亚洲高清视频免费
|
亚洲国产日韩在线视频
|
日本特黄特色AAA大片免费
|
波多野结衣免费在线
|
国产亚洲人成网站观看
|
亚洲jizzjizz少妇
|
天天看免费高清影视
|
亚洲精品国产电影午夜
|
最近中文字幕电影大全免费版
|
亚洲成年看片在线观看
|
亚洲AV无码专区亚洲AV桃
|
免费可以在线看A∨网站
|
亚洲国产日韩在线成人蜜芽
|
成年女人免费视频播放77777
|
亚洲Av无码专区国产乱码DVD
|
中文在线观看永久免费
|