1
2
3
4
5
|
<form
enctype= "multipart/form-data" > <input
name= "file"
type= "file"
/> <input
type= "button"
value= "Upload"
/> </form> <progress></progress> |
首先,你可以做一些验证,例如文件的onChange事件:
1
2
3
4
5
6
7
|
$( ':file' ).change(function(){ var
file = this .files[0]; name
= file.name; size
= file.size; type
= file.type; //your
validation }); |
按钮点击触发Ajax:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
$( ':button' ).click(function(){ var
formData = new
FormData($( 'form' )[0]); $.ajax({ url:
'upload.php' ,
//server
script to process data type:
'POST' , xhr:
function() { //
custom xhr myXhr
= $.ajaxSettings.xhr(); if (myXhr.upload){
//
check if upload property exists myXhr.upload.addEventListener( 'progress' ,progressHandlingFunction,
false );
//
for handling the progress of the upload } return
myXhr; }, //Ajax事件 beforeSend:
beforeSendHandler, success:
completeHandler, error:
errorHandler, //
Form数据 data:
formData, //Options
to tell JQuery not to process data or worry about content-type cache:
false , contentType:
false , processData:
false }); }); |
处理进度:
1
2
3
4
5
|
function
progressHandlingFunction(e){ if (e.lengthComputable){ $( 'progress' ).attr({value:e.loaded,max:e.total}); } } |