рдЬреЗрдПрд╕ (jQuery) рдореЗрдВ рдорд▓реНрдЯреАрдереНрд░реЗрдбреЗрдб рдлрд╝рд╛рдЗрд▓ рд▓реЛрдбрд░

рдЕрдЪреНрдЫреЗ рджрд┐рди, рд╕рд╣рдХрд░реНрдорд┐рдпреЛрдВред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ JS (jQuery) рдкрд░ рдПрдХ рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдбрд░ (рдПрдХ рд╕реАрдорд┐рдд рд╕рд░реНрд╡рд░ рд▓реЛрдб рдХреЗ рд╕рд╛рде) рдмрдирд╛рдиреЗ рдХреЗ рдЕрдиреБрднрд╡ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ред

рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореБрдЭреЗ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдереА (рдЬрд┐рд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рдореИрдВ рдЖрдкрдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ): рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдореЗрдВ, рдПрдХ рд╕рдордп рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдФрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред рдХрд╛рд░реНрдп рддреБрдЪреНрдЫ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдВрдд рдореЗрдВ, рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рдореБрдЭреЗ рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧ рд░рд╣рд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рдПрдирд╛рд▓реЙрдЧ рдирд╣реАрдВ рдорд┐рд▓рд╛ред

рд╕рдорд╛рдзрд╛рди рдирдВрдмрд░ 1

рдЪреВрдВрдХрд┐ рдХрд╛рд░реНрдп рд╕рд░рд▓ рдерд╛, рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рдорд╛рдзрд╛рди рдкрд╣рд▓реЗ рд╣реА рд▓рд┐рдЦреЗ рдЬрд╛ рдЪреБрдХреЗ рд╣реИрдВ, рдореИрдВрдиреЗ рдорджрдж рдХреЗ рд▓рд┐рдП Google рдХрд╛ рд░реБрдЦ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди, рдЦреЛрдЬ рдиреЗ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рджрд┐рдП - рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдлреНрд▓реИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рдЬреЛ, рдХреБрдЫ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░рдг, рдореБрдЭреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреА рдЧрдИ) рдпрд╛ рдЬреЗрдПрд╕ рдореЗрдВ рд▓рд┐рдЦрд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрд╣реБрдд рд╡рд┐рд╢рд╛рд▓ рдФрд░, рд╕рдмрд╕реЗ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг, рдирд┐рд╖реНрдХреНрд░рд┐рдп рдереЗред рдореБрдЭреЗ рдмрд╛рдЗрдХ рдЕрд╕реЗрдВрдмрд▓ рдХрд░рдиреА рдереАред

рдирд┐рд░реНрдгрдп рд╕рдВрдЦреНрдпрд╛ 2

рдХрд╛рд░реНрдп рдЕрддреНрдпрд╛рд╡рд╢реНрдпрдХ рдерд╛, рдЗрд╕рд▓рд┐рдП рддрддреНрдХрд╛рд▓ рд╕рдорд╛рдзрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдореИрдВрдиреЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб (HTML5 рдХреЗ рд╕рд╛рде рдЙрдкрд▓рдмреНрдз) рдореЗрдВ рдХрдИ рдЧреБрдгрдирдЦрдВрдб рдмрдирд╛рдП рд╣реИрдВред

<form id='FilesupLoadForm'> <input type='file' id='fileinput' name='files' multiple="multiple" > <input type="submit" value='upload'> </form> 


рдЗрд╕рдХреЗ рдмрд╛рдж рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЫреЛрдЯреЗ рдмрджрд▓рд╛рд╡ рд╣реБрдП - рдФрд░ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ! (рдореЗрд░рд╛ рднреЛрд▓рд╛рдкрди (рдЕрдиреБрднрд╡рд╣реАрдирддрд╛) рдЪреИрдкрд▓ рдирд╣реАрдВ рдерд╛)ред
рдЬреИрд╕рд╛ рдХрд┐ рдХрдИ рд▓реЛрдЧ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╣рдВрд╕реА рдХреЗ рд╕рд╛рде рд╕реЛрдЪ рдЪреБрдХреЗ рд╣реИрдВ, рдкрд╛рдВрдЪ рд╕реМ рддрд┐рд╣рд╛рдИ рдиреЗ рдирдЧреАрдиреЗ рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рдкрд╣рд▓рд╛, рд╕рд╛рдорд╛рдиреНрдп, рдмреИрдЪ рдЬрд╡рд╛рдм рджрд┐рдпрд╛ред рд╣рдореЗрдВ рдЖрдЧреЗ рд╕реЛрдЪрдирд╛ рдерд╛ред

рдирд┐рд░реНрдгрдп рд╕рдВрдЦреНрдпрд╛ 3

рдЪреВрдВрдХрд┐ рдкрд┐рдЫрд▓реЗ рдлреИрд╕рд▓реЗ рдХреЛ рд╕реБрдВрджрд░ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд░реВрдк рд╕реЗ рдкреНрд░рд╡реЗрд╢ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдкрд░ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рддреНрд░реБрдЯрд┐ рд╕рдВрдЦреНрдпрд╛ 503 рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдерд╛, рдЬреЛ рд▓рдВрдмрд╛ рдлрд╛рдЗрд▓ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдХрд╛рд░рдг рдирдЧрдиреЗрдХреНрд╕ рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ред
рдЗрд╕реЗ рд╕реЛрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛ рдорд┐рдирдЯ рдФрд░ рдПрдХ рдирдпрд╛ рд╕рдорд╛рдзрд╛рди рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ: рд╣рдо рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рд╕рднреА рдлрд╛рдЗрд▓реЗрдВ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдПрдХ рд╕рдордп рдореЗрдВ рдЕрдЬрд╛рдХреНрд╕ рднреЗрдЬ рджреЗрдВрдЧреЗред

рд╕рдорд╛рдзрд╛рди рд▓рдЧрднрдЧ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдерд╛:

 jQuery.each($('#fileinput')[0].files, function(i, f) { var file = new FormData(); file.append('file', f); $.ajax({ url: 'uploader.php', data: file, async : false, contentType: false, processData: false, dataType: "JSON", type: 'POST', beforeSend: function() {}, complete: function(event, request, settings) {}, success: function(data){ } }); }); 


рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ: рд╣рдо рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЙрд░реНрдЯ рдХрд░рддреЗ рд╣реИрдВ (рдЬреЛ рд╡рд╛рдВрдЫрд┐рдд рдЗрдирдкреБрдЯ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ), рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдПрдВ (рдЙрд╕ рдкрд░ рдмрд╛рдж рдореЗрдВ) рдФрд░ рдПрдЬреИрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рд╕рд░реНрд╡рд░ рдХреЛ рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдВред рдпрд╣ " async: false " рдкреИрд░рд╛рдореАрдЯрд░ рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ - рдпрд╣рд╛рдВ рд╣рдо рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рд░реНрд╡рд░ рдЕрдиреБрд░реЛрдз рдмрдирд╛рдПрдЧрд╛, рдЬрд┐рд╕реЗ рд╣рдо рдЖрд╕рд╛рдиреА рд╕реЗ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рдорд╛рдзрд╛рди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ - рдпрд╣ рдзреАрд░реЗ-рдзреАрд░реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдФрд░ рдлрд┐рд░ рдореИрдВ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдПрдХ рдФрд░ рд╕рдорд╛рдзрд╛рди рдХрд╛ рд╡рд┐рдЪрд╛рд░ рд▓реЗрдХрд░ рдЖрдпрд╛ред

рдирд┐рд░реНрдгрдп рд╕рдВрдЦреНрдпрд╛ рек

рд╕рд░реНрд╡рд░ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЙрди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдлрд╛рдЗрд▓реЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХреА рдЬрд╛рдПрдВрдЧреАред рдЗрд╕ рддрд░рд╣ рдХрд╛ рдирд┐рд░реНрдгрдп рджреЛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд░рд╣рддрд╛ рд╣реИ:
1)ред рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд╕рд╛рде, рдореИрдВ рдЬрд▓реНрджреА рд╕реЗ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдирд░рдХ рдореЗрдВ рдЬрд╛рддрд╛ рд╣реВрдВред
2) рдПрдХ рд╕рд╛рде рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдПрдХ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рд╣рдореЗрдВ рдкреВрд░реЗ рдЪреИрдирд▓ рдкрд░ рд░реЛрдХ рджреЗрдЧреАред
рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рд╣рдорд╛рд░реЗ рд▓реЛрдбрд░ рдХреЛ рдЪрд▓ рд░рд╣реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдХреБрдЫ рд╢рд░реНрддреЛрдВ рдХреЗ рддрд╣рдд, рдХреБрдЫ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ, рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдХреЛрдб рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЙрддрд░реЛ:

  FilesUploader = { dataArr : new Array(), fStek : new Array(), vStek : 0, deley : 100, debug : true, maxFilesSize : 1024*1024*10, maxThreads : 10, 


рд▓реАрдЬреЗрдВрдб:
dataArr - рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреАред
fStek - рдЕрдкреВрд░реНрдг рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╕реНрдореГрддрд┐ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рдЯрд╛рдЗрдордЖрдЙрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд▓рд┐рдЦреЗрдВред
vStek - рдереНрд░реЗрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ ред
рдбреЗрд▓реА - рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╡рд┐рд▓рдВрдм рдЬреЛ рдкреНрд░рд╡рд╛рд╣ рдФрд░ рд╡реЙрд▓реНрдпреВрдо рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред
рдбреАрдмрдЧ - рдбрд┐рдмрдЧ рдореЛрдбред рдпрд╣ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд╕рднреА рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ред
maxFilesSize - рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рдорд╛рддреНрд░рд╛
maxThreads - рдереНрд░реЗрдб рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ред

рдЪрд░ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ fStek рдФрд░ рдбреЗрд▓реЗ ) рдХреА рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЛ рд╡рд┐рдЪрд╛рд░рд╛рдзреАрди рджреВрд╕рд░реА FilesUploader.controller () рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рдмреАрдЪ, рдЖрдЗрдП рдХрдХреНрд╖рд╛ рдХреЛ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝реЗрдВ:

  run : function() { jQuery.each($('#fileinput')[0].files, function(i, f) { FilesUploader.dataArr.push(f); }); FilesUploader.controller(); }, 


рдпрд╣ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдкрд░ рд╣реИ рдХрд┐ рдПрдХ рдлреЙрд░реНрдо рдореЗрдВ рдПрдХ рдмрдЯрди рдХреЗ рдХреНрд▓рд┐рдХ рдЗрд╡реЗрдВрдЯ рдХрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд▓рдЯрдХрд╛ рд╣реБрдЖ рд╣реИред рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдХрд╛рдо рд╕рд░рд▓ рд╣реИ: рд╣рдо рдЗрдирдкреБрдЯ рдореЗрдВ рджрд░реНрдЬ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ ( jQuery.each ) рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рд░рдгреА рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ ( FilesUploader.dataArr.push (f) ) рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдЕрдЧрд▓рд╛, рд╣рдо рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдХрд╣рддреЗ рд╣реИрдВ, рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдФрд░ рдЬрдЯрд┐рд▓ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ:

  controller : function() { FilesUploader.fStek.push(setTimeout(FilesUploader.controller, FilesUploader.deley)); if(FilesUploader.vStek>=this.maxThreads) { return; } item = FilesUploader.dataArr.pop(); if(item) { if(FilesUploader.maxFilesSize-item.size < 0) { FilesUploader.dataArr.push(item); return; } FilesUploader.maxFilesSize-=item.size; FilesUploader.vStek++; FilesUploader.worker(item); } else clearTimeout(FilesUploader.fStek.pop()); }, 


рдлрд╝рдВрдХреНрд╢рди рдХреА рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ, рд╣рдо рдЙрд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдХрд╣рддреЗ рд╣реИрдВ (рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрд╡рдзрд┐ рдХреЗ рдмрд╛рдж) (рдпрд╛рдиреА, рдПрдХ рдкреБрдирд░реНрд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рдПрдВ), рдФрд░ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрд┐рд╕реА рднреА рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ рдмрд╛рдзрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЪрд░ рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдЧрд▓реЗ рдзрд╛рдЧреЗ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рд╢рд░реНрдд рд╣реИред
рд╕рд░рдгреА рд╕реЗ рдлрд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж ( FilesUploader.dataArr.pop () ) рд╣рдо рдЗрд╕реЗ рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВред
1. рдЕрдЧрд░ рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдо рдЙрдирдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ "рдорд╛рд░" рджреЗрддреЗ рд╣реИрдВ ( ClearTimeout (FilesUploader.fStek.pop ()) );
2. рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдореМрдЬреВрдж рд╣реИ, рддреЛ рд╣рдо рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдорд╛рддреНрд░рд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдпрд╣ рдЕрдзрд┐рдХ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рддреЛ рд╣рдо рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реНрдЯреИрдХ рдкрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддреЗ рд╣реИрдВ, рдЕрдиреНрдпрдерд╛, рдпрджрд┐ рдпрд╣ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИ: рд╣рдо рд╡реЙрд▓реНрдпреВрдо рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рд╕реНрдЯреНрд░реАрдо рдереНрд░реЗрдб рдХреЗ рдХрд╛рдЙрдВрдЯрд░ рдмрдврд╝рд╛рддреЗ рд╣реИрдВ, рдФрд░ рдирд┐рдореНрди рдлрд╝рдВрдХреНрд╢рди ( FilesUploader.worker) рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВред рдЖрдЗрдЯрдо) )ред

 worker : function(item) { var file = new FormData(); file.append('file', item); $.ajax({ url: 'uploader.php', data: file, contentType: false, processData: false, dataType: "JSON", type: 'POST', beforeSend: function() {}, complete: function(event, request, settings) { FilesUploader.maxFilesSize+=this.fileData.size; FilesUploader.vStek--; }, success: function(data){ } }); }, 


Ajax рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рдлрд╝рд╛рдЗрд▓ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрд▓ рдбреЗрдЯрд╛ (file.append ()) рдХреЛ рдЗрд╕рдореЗрдВ FormData рд╡рд░реНрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЕрдЧрд▓рд╛, рд╣рдо $ .ajax рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╣рдорд╛рд░реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ рд▓реЛрдбрд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджреЗрдЧрд╛ред рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз (рдкреВрд░реНрдг () рдлрд╝рдВрдХреНрд╢рди) рдХреЗ рдЕрдВрдд рдореЗрдВ, рдЖрдкрдХреЛ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХрд░рдиреЗ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдереНрд░реЗрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЬреЛ рдХрд┐ тАЬ FilesUploader.maxFilesSize + = this.fileloadata.size тАЭ рдФрд░ тАЬ FilesUploader.vStek- тАЭ) рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдФрд░ рдЕрдВрддрд┐рдо рд╕реНрдкрд░реНрд╢ рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рдВрдХреНрд╢рди рдФрд░ рд╕рдорд╛рдкрди рдмреНрд░реИрдХреЗрдЯ рд╣реИ:

  out : function(message) { if(console.log && this.debug) console.log(message); } } 


рдпрд╣ рд╕рдм - рд╕рд░реНрд╡рд░ рдкрд░ рдорд▓реНрдЯреАрдереНрд░реЗрдбреЗрдб рдЕрдкрд▓реЛрдбрд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдЧ рддреИрдпрд╛рд░ рд╣реИред рдЕрдЧрд▓рд╛, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╕рд░реНрд╡рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдереНрд░реЗрдб рдХреА рдЕрдиреБрдореЗрдп рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдПрдХ рд╕рд╛рде рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдорд╛рддреНрд░рд╛ - рдФрд░ рдЖрдк рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

Source: https://habr.com/ru/post/In149701/


All Articles