Scott Zone
似水流年,勤勉無價
BlogJava
首頁
新隨筆
聯系
聚合
管理
posts - 27, comments - 14, trackbacks - 0
幾種js實現的動態多文件上傳
方式一:事先寫好多個input.在點擊時才顯示。也就是說上傳的最大個數是寫死了的。
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
>
方式二:這種方式的動態多文件上傳是實現了的,很簡單。
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
>
方式三:動態多文件上傳,只是在oFileInput.click();這個地方,這樣做就不能上傳這個文件了,因為發現它在上傳之時就把這個input中的文件置空了。很可能是為了安全著想吧!
另外還有一點就是說,click()只有在ie中才能正常運行。
雖說這種方式最終沒能實現上傳,但還是留下來參考,看看是否有人可以真正實現上傳。
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
//
---創建一個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
第三種方式的改進方案提示:
做一個
添加附件
然后做一個type為file的input框,把此框和span定位重疊起來 把file框透明度設置為0 即完全看不到,但是確實存在。這個時候點span的時候就是在點這個file框 但是看不到file框子 是不是實現了呢? 然后再結合你第二種的方式給框編號 動態增加就可以實現多文件上傳了 。
(本文轉自
http://www.tkk7.com/bnlovebn/archive/2007/01/26/96194.aspx
)
posted on 2007-07-12 17:23
Scott.Pan
閱讀(2771)
評論(1)
編輯
收藏
所屬分類:
代碼收藏夾
FeedBack:
#
re: 幾種js實現的動態多文件上傳
2014-08-25 15:54 |
11
最后一種不能用
回復
更多評論
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
insertAdjacentHTML方法示例
轉JS校驗
封裝了Jakarta 文件上傳功能的一個類(轉)
幾種js實現的動態多文件上傳
動態WEB應用中的用戶SESSION管理方案
JDBC之代碼復用(轉)
目錄樹程序
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開發
代碼收藏夾(7)
生活記事(6)
目錄服務(3)
隨筆檔案
2007年8月 (5)
2007年7月 (22)
搜索
最新評論
1.?re: Portlet學習分析筆記[未登錄]
來學習一下
--zz
2.?re: 幾種js實現的動態多文件上傳
最后一種不能用
--11
3.?re: insertAdjacentHTML方法示例[未登錄]
1
--1
4.?re: Portlet學習分析筆記
寫的很不錯。學習了
--chailieyang
5.?re: insertAdjacentHTML方法示例
評論內容較長,點擊標題查看
--啊打發
閱讀排行榜
1.?insertAdjacentHTML方法示例(23445)
2.?經典英語200句(4365)
3.?Portlet學習分析筆記(3620)
4.?SearchContainer的用法說明(2796)
5.?幾種js實現的動態多文件上傳(2771)
評論排行榜
1.?Portlet學習分析筆記(4)
2.?insertAdjacentHTML方法示例(2)
3.?幾種js實現的動態多文件上傳(1)
4.?經典英語200句(1)
5.?Liferay項目中問題及解決方法列舉(1)
主站蜘蛛池模板:
在线免费视频一区
|
亚洲第一成年男人的天堂
|
a级毛片免费全部播放无码
|
亚洲高清在线视频
|
国产香蕉九九久久精品免费
|
亚洲AV无码AV男人的天堂不卡
|
国产亚洲精品免费视频播放
|
成人免费的性色视频
|
农村寡妇一级毛片免费看视频
|
亚洲视频在线观看
|
va亚洲va日韩不卡在线观看
|
国产黄色片在线免费观看
|
亚洲人成人网站18禁
|
国产大片91精品免费观看男同
|
免费播放在线日本感人片
|
亚洲午夜无码久久久久软件
|
亚洲精品V欧洲精品V日韩精品
|
四虎影院免费视频
|
99精品视频在线免费观看
|
免费人妻精品一区二区三区
|
亚洲成av人片在线看片
|
亚洲伊人色欲综合网
|
免费观看的av毛片的网站
|
99精品视频在线免费观看
|
毛片免费在线播放
|
桃子视频在线观看高清免费视频
|
国产精品亚洲av色欲三区
|
亚洲国产成人精品无码一区二区
|
亚洲精品无码成人片久久
|
又黄又爽的视频免费看
|
三上悠亚在线观看免费
|
亚洲精品乱码久久久久久V
|
中文字幕第13亚洲另类
|
日韩免费高清视频
|
毛色毛片免费观看
|
国产成人精品免费视
|
99热在线免费观看
|
免费萌白酱国产一区二区三区
|
一级成人毛片免费观看
|
羞羞视频免费网站含羞草
|
亚洲人成依人成综合网
|