切换导航条
此项目
正在载入...
登录
anyv
/
xkeasy
·
提交
转到一个项目
GitLab
转到仪表盘
项目
活动
文件
提交
管道
0
构建
0
图表
里程碑
问题
0
合并请求
0
成员
标记
维基
派生
网络
创建新的问题
下载为
邮件补丁
差异文件
浏览文件
作者
anyv
6 years ago
提交
7a23968ead3647ea0d01545e242ce2925b8b0960
1 个父辈
0c2c7b2b
1 个管道 的构建
通过
耗费 0 秒
32
变更
1
构建
1
隐藏空白字符变更
内嵌
并排对比
正在显示
1 个修改的文件
包含
223 行增加
和
0 行删除
public/themes/simpleboot3/public/assets/js/uploadfile.js
public/themes/simpleboot3/public/assets/js/uploadfile.js
0 → 100644
查看文件 @
7a23968
jQuery
.
extend
({
createUploadIframe
:
function
(
id
,
uri
)
{
//create frame
var
frameId
=
'jUploadFrame'
+
id
;
if
(
window
.
ActiveXObject
)
{
var
io
=
document
.
createElement
(
'<iframe id="'
+
frameId
+
'" name="'
+
frameId
+
'" />'
);
if
(
typeof
uri
==
'boolean'
){
io
.
src
=
'javascript:false'
;
}
else
if
(
typeof
uri
==
'string'
){
io
.
src
=
uri
;
}
}
else
{
var
io
=
document
.
createElement
(
'iframe'
);
io
.
id
=
frameId
;
io
.
name
=
frameId
;
}
io
.
style
.
position
=
'absolute'
;
io
.
style
.
top
=
'-1000px'
;
io
.
style
.
left
=
'-1000px'
;
document
.
body
.
appendChild
(
io
);
return
io
},
createUploadForm
:
function
(
id
,
fileElementId
)
{
//create form
var
formId
=
'jUploadForm'
+
id
;
var
fileId
=
'jUploadFile'
+
id
;
var
form
=
$
(
'<form action="" method="POST" name="'
+
formId
+
'" id="'
+
formId
+
'" enctype="multipart/form-data"></form>'
);
var
oldElement
=
$
(
'#'
+
fileElementId
);
var
newElement
=
$
(
oldElement
).
clone
(
true
);
$
(
oldElement
).
attr
(
'id'
,
fileId
);
$
(
oldElement
).
before
(
newElement
);
$
(
oldElement
).
appendTo
(
form
);
//set attributes
$
(
form
).
css
(
'position'
,
'absolute'
);
$
(
form
).
css
(
'top'
,
'-1200px'
);
$
(
form
).
css
(
'left'
,
'-1200px'
);
$
(
form
).
appendTo
(
'body'
);
return
form
;
},
addOtherRequestsToForm
:
function
(
form
,
data
)
{
// add extra parameter
var
originalElement
=
$
(
'<input type="hidden" name="" value="">'
);
for
(
var
key
in
data
)
{
name
=
key
;
value
=
data
[
key
];
var
cloneElement
=
originalElement
.
clone
();
cloneElement
.
attr
({
'name'
:
name
,
'value'
:
value
});
$
(
cloneElement
).
appendTo
(
form
);
}
return
form
;
},
ajaxFileUpload
:
function
(
s
)
{
// TODO introduce global settings, allowing the client to modify them for all requests, not only timeout
s
=
jQuery
.
extend
({},
jQuery
.
ajaxSettings
,
s
);
var
id
=
new
Date
().
getTime
()
var
form
=
jQuery
.
createUploadForm
(
id
,
s
.
fileElementId
);
if
(
s
.
data
)
form
=
jQuery
.
addOtherRequestsToForm
(
form
,
s
.
data
);
var
io
=
jQuery
.
createUploadIframe
(
id
,
s
.
secureuri
);
var
frameId
=
'jUploadFrame'
+
id
;
var
formId
=
'jUploadForm'
+
id
;
// Watch for a new set of requests
if
(
s
.
global
&&
!
jQuery
.
active
++
)
{
jQuery
.
event
.
trigger
(
"ajaxStart"
);
}
var
requestDone
=
false
;
// Create the request object
var
xml
=
{}
if
(
s
.
global
)
jQuery
.
event
.
trigger
(
"ajaxSend"
,
[
xml
,
s
]);
// Wait for a response to come back
var
uploadCallback
=
function
(
isTimeout
)
{
var
io
=
document
.
getElementById
(
frameId
);
try
{
if
(
io
.
contentWindow
)
{
xml
.
responseText
=
io
.
contentWindow
.
document
.
body
?
io
.
contentWindow
.
document
.
body
.
innerHTML
:
null
;
xml
.
responseXML
=
io
.
contentWindow
.
document
.
XMLDocument
?
io
.
contentWindow
.
document
.
XMLDocument
:
io
.
contentWindow
.
document
;
}
else
if
(
io
.
contentDocument
)
{
xml
.
responseText
=
io
.
contentDocument
.
document
.
body
?
io
.
contentDocument
.
document
.
body
.
innerHTML
:
null
;
xml
.
responseXML
=
io
.
contentDocument
.
document
.
XMLDocument
?
io
.
contentDocument
.
document
.
XMLDocument
:
io
.
contentDocument
.
document
;
}
}
catch
(
e
)
{
jQuery
.
handleError
(
s
,
xml
,
null
,
e
);
}
if
(
xml
||
isTimeout
==
"timeout"
)
{
requestDone
=
true
;
var
status
;
try
{
status
=
isTimeout
!=
"timeout"
?
"success"
:
"error"
;
// Make sure that the request was successful or notmodified
if
(
status
!=
"error"
)
{
// process the data (runs the xml through httpData regardless of callback)
var
data
=
jQuery
.
uploadHttpData
(
xml
,
s
.
dataType
);
// If a local callback was specified, fire it and pass it the data
if
(
s
.
success
)
s
.
success
(
data
,
status
);
// Fire the global callback
if
(
s
.
global
)
jQuery
.
event
.
trigger
(
"ajaxSuccess"
,
[
xml
,
s
]
);
}
else
jQuery
.
handleError
(
s
,
xml
,
status
);
}
catch
(
e
)
{
status
=
"error"
;
jQuery
.
handleError
(
s
,
xml
,
status
,
e
);
}
// The request was completed
if
(
s
.
global
)
jQuery
.
event
.
trigger
(
"ajaxComplete"
,
[
xml
,
s
]
);
// Handle the global AJAX counter
if
(
s
.
global
&&
!
--
jQuery
.
active
)
jQuery
.
event
.
trigger
(
"ajaxStop"
);
// Process result
if
(
s
.
complete
)
s
.
complete
(
xml
,
status
);
jQuery
(
io
).
unbind
()
setTimeout
(
function
()
{
try
{
$
(
io
).
remove
();
$
(
form
).
remove
();
}
catch
(
e
)
{
jQuery
.
handleError
(
s
,
xml
,
null
,
e
);
}
},
100
)
xml
=
null
}
}
// Timeout checker
if
(
s
.
timeout
>
0
)
{
setTimeout
(
function
(){
// Check to see if the request is still happening
if
(
!
requestDone
)
uploadCallback
(
"timeout"
);
},
s
.
timeout
);
}
try
{
// var io = $('#' + frameId);
var
form
=
$
(
'#'
+
formId
);
$
(
form
).
attr
(
'action'
,
s
.
url
);
$
(
form
).
attr
(
'method'
,
'POST'
);
$
(
form
).
attr
(
'target'
,
frameId
);
if
(
form
.
encoding
)
{
form
.
encoding
=
'multipart/form-data'
;
}
else
{
form
.
enctype
=
'multipart/form-data'
;
}
$
(
form
).
submit
();
}
catch
(
e
)
{
jQuery
.
handleError
(
s
,
xml
,
null
,
e
);
}
if
(
window
.
attachEvent
){
document
.
getElementById
(
frameId
).
attachEvent
(
'onload'
,
uploadCallback
);
}
else
{
document
.
getElementById
(
frameId
).
addEventListener
(
'load'
,
uploadCallback
,
false
);
}
return
{
abort
:
function
()
{}};
},
uploadHttpData
:
function
(
r
,
type
)
{
var
data
=
!
type
;
data
=
type
==
"xml"
||
data
?
r
.
responseXML
:
r
.
responseText
;
// If the type is "script", eval it in global context
if
(
type
==
"script"
)
jQuery
.
globalEval
(
data
);
// Get the JavaScript object, if JSON is used.
if
(
type
==
"json"
)
{
// If you add mimetype in your response,
// you have to delete the '<pre></pre>' tag.
// The pre tag in Chrome has attribute, so have to use regex to remove
var
data
=
r
.
responseText
;
var
rx
=
new
RegExp
(
"<pre.*?>(.*?)</pre>"
,
"i"
);
var
am
=
rx
.
exec
(
data
);
//this is the desired data extracted
var
data
=
(
am
)
?
am
[
1
]
:
""
;
//the only submatch or empty
eval
(
"data = "
+
data
);
}
// evaluate scripts within html
if
(
type
==
"html"
)
jQuery
(
"<div>"
).
html
(
data
).
evalScripts
();
//alert($('param', data).each(function(){alert($(this).attr('value'));}));
return
data
;
}
})
...
...
请
注册
或
登录
后发表评论