HTML5 рдлрд╝рд╛рдЗрд▓ API: рд╕рд░реНрд╡рд░ рдкрд░ рдХрдИ рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рд╣реЛрддреА рд╣реИ

рдЬрдм рдореИрдВрдиреЗ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕рд░реНрд╡рд░ рдкрд░ рдХрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдХрд┐рдпрд╛ (рдкреГрд╖реНрда рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛), рддреЛ рдореИрдВрдиреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рд╕рд░реНрдлрд┐рдВрдЧ рд╢реБрд░реВ рдХрд░ рджреА рдмрд▓реНрдХрд┐ рдПрдХ рдмрд╣реБрдд рд╣реА рднрджреНрджреЗ jQuery рдкреНрд▓рдЧрдЗрди рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдХреЗ ajax рдбрд╛рдЙрдирд▓реЛрдб рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рд╡рд╣реА рдкреНрд▓рдЧрдЗрди) рдПрдХ рдЫрд┐рдкреЗ рд╣реБрдП рдлреНрд░реЗрдо рдХреЗ рд╕рд╛рде: рдпрд╣ рддреБрд░рдВрдд рдЬрд╛рд╡рд╛ рдФрд░ рдлреНрд▓реИрд╢ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рдордирд╛ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛)ред рдЦреЛрдЬ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдореБрдЭреЗ рдпрд╛рдж рдЖрдпрд╛ рдХрд┐ рдЖрдЧрд╛рдореА HTML 5 рдорд╛рдирдХ рдореЗрдВ, рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдореЗрдВ рдХрд╛рдлреА рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЕрдм рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЙрдиреНрд╣реЗрдВ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред

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


рдореИрдВ рдЗрд╕реЗ рдирд╣реАрдВ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рддрд╛, рдореИрдВ рдПрдХ рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд░рдЦрддрд╛ рд╣реВрдВред

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

рдХрдорд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ, рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдХреЗрд╡рд▓ рдЕрдкрд░реНрдпрд╛рдкреНрдд рд╕рдорд░реНрдерди рд╣реА рдиреЛрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдлрд╝рд╛рдЗрд▓ рдПрдкреАрдЖрдИ рдХреЗрд╡рд▓ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ the 3.6 рдФрд░ рдХреНрд░реЛрдо s 6.0 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдПрдХ рднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд╕рдлрд╛рд░реА рдмрд╣реБрдд рдЬрд▓реНрдж рд╣реА рдКрдкрд░ рдЦреАрдВрдЪ рд▓реЗрдЧреА, рд▓реЗрдХрд┐рди рдЖрдИрдИ рдФрд░ рдУрдкреЗрд░рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ (рд╢рд╛рдпрдж рдХрд┐рд╕реА рдХреЛ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ?)ред рдпрд╣ рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рдерд╛, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдПрдкреАрдЖрдИ IE9 рдмреАрдЯрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ: рдпрд╣ рдЕрдЬреАрдм рд╣реИ, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ IE рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрдм html 5 рдХреЗ рд▓рд┐рдП рдкреНрд░рдЪреБрд░ рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╕рдорд░реНрдерди рдХреА рдУрд░ рдмрдврд╝ рд░рд╣реЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЛ рдкрдХрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред

рдПрдХ рдХрд╛рдордХрд╛рдЬреА рдЙрджрд╛рд╣рд░рдг http://safron.pro/playground/html5uploader/ рдкрд░ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдиреАрдЪреЗ рдХреЗрд╡рд▓ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рд╣реИрдВред

рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо HTML рдХреЛрдб рд╕реЗ рдирд┐рдкрдЯреЗрдВрдЧреЗред рд╣рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЗрдирдкреБрдЯ рддрддреНрд╡, рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдФрд░ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдВрдЯреЗрдирд░ рдФрд░ рдЙрд▓ рд╕реВрдЪреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╣рдо рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдердВрдмрдиреЗрд▓ рдбрд╛рд▓реЗрдВрдЧреЗ:
<div> <input type="file" name="file" id="file-field" multiple="true" /> </div> <div id="img-container"> <ul id="img-list"></ul> </div> 


рд╡рд┐рд╢реЗрд╖ рдХреБрдЫ рднреА рдирд╣реАрдВ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдЗрдирдкреБрдЯ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП multiple="true" рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рддрд╛рдХрд┐ рдорд╛рдирдХ рдлрд╝рд╛рдЗрд▓ рдЪрдпрди рд╕рдВрд╡рд╛рдж рдореЗрдВ рдЖрдк рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХреЗрдВред рд╡реИрд╕реЗ, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 4 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд╛ рд╡рд╛рджрд╛ рд╣реИ рдХрд┐ рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рдирдлрд░рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдорд╛рдирдХ рдлрд╝рд╛рдЗрд▓ рдЪрдпрди рдлрд╝реАрд▓реНрдб рдХреЛ рдЫреБрдкрд╛рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рдФрд░ рдПрдХ рдЫрд┐рдкреЗ рд╣реБрдП рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд┐рдХ рдЗрд╡реЗрдВрдЯ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдХреЗ рд╕рдВрд╡рд╛рдж рджрд┐рдЦрд╛рдПрдЧрд╛ред

рдЕрдм рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореИрдВрдиреЗ DOM рдХреЗ рд╣реЗрд░рдлреЗрд░ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП jQuery рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛ред рдЬреЛ рдХреЛрдИ рднреА рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ jQuery рдХреЛ рдЫреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рд╡рд╣ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХреЗрдЧрд╛ рдЬреИрд╕реЗ рдХрд┐ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХрд░рдирд╛ рд╣реИ)ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЙрди HTML рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рдЪрд░ рдореЗрдВ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ рдЬреЛ рдореБрдЦреНрдп рднреВрдорд┐рдХрд╛рдУрдВ рдореЗрдВ рдЕрднрд┐рдирдп рдХрд░рддреЗ рдереЗред рдЕрдЧрд▓рд╛, рд╣рдо рдорд╛рдирдХ рдлрд╝рд╛рдЗрд▓ рдЪрдпрди рдлрд╝реАрд▓реНрдб рдФрд░ рдЙрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдВ рдЖрдк рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЦреАрдВрдЪ рдФрд░ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдХреЗ рд▓рд┐рдП рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
  //  input   var fileInput = $('#file-field'); // ul-,     var imgList = $('ul#img-list'); // ,      drag and drop var dropBox = $('#img-container'); //        fileInput.bind({ change: function() { displayFiles(this.files); } }); //   drag and drop      dropBox dropBox.bind({ dragenter: function() { $(this).addClass('highlighted'); return false; }, dragover: function() { return false; }, dragleave: function() { $(this).removeClass('highlighted'); return false; }, drop: function(e) { var dt = e.originalEvent.dataTransfer; displayFiles(dt.files); return false; } }); 


рджреЛрдиреЛрдВ рд╣реА рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рд╣рдореЗрдВ рдлрд╛рдЗрд▓рд▓рд┐рд╕реНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рддрдХ рдкрд╣реБрдВрдЪ рдорд┐рд▓рддреА рд╣реИ, рдЬреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреА рдПрдХ рд╕рд░рдгреА рд╣реИред рдЗрд╕ рд╕рд░рдгреА рдХреЛ рдбрд┐рд╕реНрдкреНрд▓реЗрдлрд╛рдЗрд▓реНрд╕ () рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдкрд╛рда рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
  function displayFiles(files) { $.each(files, function(i, file) { if (!file.type.match(/image.*/)) { //    return true; } //   li     ,   progress bar, //      file,    File (  ) var li = $('<li/>').appendTo(imgList); $('<div/>').text(file.name).appendTo(li); var img = $('<img/>').appendTo(li); $('<div/>').addClass('progress').text('0%').appendTo(li); li.get(0).file = file; //   FileReader     ,     //     var reader = new FileReader(); reader.onload = (function(aImg) { return function(e) { aImg.attr('src', e.target.result); aImg.attr('width', 150); /* ...      ... */ }; })(img); reader.readAsDataURL(file); }); } 


рдлрд╝рд╛рдЗрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдЙрд╕рдХрд╛ рдирд╛рдо, рдЖрдХрд╛рд░ рдФрд░ рдкреНрд░рдХрд╛рд░ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЫрд╡рд┐ / gif), рдХреНрд░рдорд╢рдГ, рдирд╛рдо, рдЖрдХрд╛рд░ рдФрд░ рдкреНрд░рдХрд╛рд░ рдЧреБрдгреЛрдВ рдореЗрдВред рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡рд┐рд╢реЗрд╖ FileReader рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИред

DisplayFiles () рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░, рд╣рдо рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╕рд░рдгреА рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реИрдВ рдФрд░ рдкрд╣рд▓реЗ рдЙрди рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВ рдЬреЛ рдЪрд┐рддреНрд░ рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрд╛рдж, рдкреНрд░рддреНрдпреЗрдХ рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП, рд▓реА рд╕реВрдЪреА рдХрд╛ рдПрдХ рддрддреНрд╡ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ img рддрддреНрд╡ рдХреЛ рд░рдЦрд╛ рдЬрд╛рдиреЗ рддрдХ рдЦрд╛рд▓реА рд╣реЛрддрд╛ рд╣реИ (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рд▓реА рд╕рдВрдкрддреНрддрд┐ рднреА рдкреНрд░рддреНрдпреЗрдХ рдПрд▓ рдПрд▓ рддрддреНрд╡ рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд╕реНрддреБ рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рд╣реИ)ред рдЙрд╕рдХреЗ рдмрд╛рдж, FileReader рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдСрдирд▓реЛрдб рд╣реИрдВрдбрд▓рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкрд╣рд▓реЗ рдмрдирд╛рдП рдЧрдП img рддрддреНрд╡ рдХреЗ src рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рд╕реАрдзреЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред FileReader рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ readAsDataURL () рд╡рд┐рдзрд┐ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдорд╛рдирдХ рдлрд╝реАрд▓реНрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрдпрдирд┐рдд рдпрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░ рд╕реАрдзреЗ рдЦреАрдВрдЪреЗ рдЧрдП рд╕рднреА рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЙрдирдХреЗ рдердВрдмрдиреЗрд▓ (рдХреГрддреНрд░рд┐рдо рд░реВрдк рд╕реЗ 150 рдорд┐рд▓рд┐рдпрди рддрдХ рдХрдо) рджреЗрдЦрддреЗ рд╣реИрдВред

рдФрд░ рдХреНрдпрд╛ рдХрд░рдирд╛ рдмрд╛рдХреА рд╣реИ? рдпрд╣ рдХреЗрд╡рд▓ рд╕рд░реНрд╡рд░ рдкрд░ рд╕рднреА рдЪрдпрдирд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмрд╣реБрдд рдбрд╛рдЙрдирд▓реЛрдб рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рдмрдЯрди рдпрд╛ рд▓рд┐рдВрдХ рдмрдирд╛рдПрдВ, рдЬрдм рдЖрдк рдЙрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдмрд╕ рд╕рднреА рдмрдирд╛рдП рдЧрдП рдЭреВрдареЗ рддрддреНрд╡реЛрдВ рд╕реЗ рдЧреБрдЬрд░рдирд╛ рд╣реЛрдЧрд╛, рдЙрдирдХреА рдлрд╝рд╛рдЗрд▓ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдкрдврд╝рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдЕрдкрд▓реЛрдбрдлрд┐рд▓ () рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рднреЗрдЬрдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХрд╛ рдкрд╛рда рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рд╕рд░рд▓реАрдХрд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛, рдФрд░ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, http://safron.pro/playground/html5uploader/ рдкрд░ рд╕реНрдерд┐рдд, рдореИрдВрдиреЗ рдПрдХ рдЕрдкрд▓реЛрдбрд░рдСрдмрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рднреА рд▓реЛрдбрд┐рдВрдЧ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдПрдХрддреНрд░ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рдЖрдк рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рдХреЙрд▓рдмреИрдХ рд▓реЛрдбрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред
 function uploadFile(file, url) { var reader = new FileReader(); reader.onload = function() { var xhr = new XMLHttpRequest(); xhr.upload.addEventListener("progress", function(e) { if (e.lengthComputable) { var progress = (e.loaded * 100) / e.total; /* ...      ... */ } }, false); /* ...     load  error  xhr.upload ... */ xhr.onreadystatechange = function () { if (this.readyState == 4) { if(this.status == 200) { /* ...  !   this.responseText ... */ } else { /* ... ! ... */ } } }; xhr.open("POST", url); var boundary = "xxxxxxxxx"; //   xhr.setRequestHeader("Content-Type", "multipart/form-data, boundary="+boundary); xhr.setRequestHeader("Cache-Control", "no-cache"); //    var body = "--" + boundary + "\r\n"; body += "Content-Disposition: form-data; name='myFile'; filename='" + file.name + "'\r\n"; body += "Content-Type: application/octet-stream\r\n\r\n"; body += reader.result + "\r\n"; body += "--" + boundary + "--"; if(xhr.sendAsBinary) { //   firefox xhr.sendAsBinary(body); } else { // chrome (   W3C) xhr.send(body); } }; //   reader.readAsBinaryString(file); } 


рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░рд┐рдЪрд┐рдд FileReader рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддрд╛ рд╣реИ, рдЙрд╕реА рддрд░рд╣ рдЬреИрд╕реЗ рдКрдкрд░; рдЗрд╕реЗ рдПрдХ рдСрдирд▓реЛрдб рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ XMLHttpRequest рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ (рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЖрдк рдЕрднреА рддрдХ jQuery рдХреЗ рдЕрдЬрд╛рдХреНрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдХреНрдпреЛрдВрдХрд┐ рдлрд╛рдЗрд▓ рдЕрднреА рддрдХ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИрдВ)ред рджреВрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ XMLHttpRequest рдореЗрдВ, рдЕрдкрд▓реЛрдб рд╕рдВрдкрддреНрддрд┐ рджрд┐рдЦрд╛рдИ рджреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд▓реЛрдбрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ рдЬреЛ рдкреНрд░рдЧрддрд┐, рд▓реЛрдб рдФрд░ рддреНрд░реБрдЯрд┐ рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ (рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП http://www.w3.org/TR/XMLHttpRequest2-#xmlhttprequesteventtarget ) рджреЗрдЦреЗрдВред рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдЙрджрд╛рд╣рд░рдг рдХреЗрд╡рд▓ рдкреНрд░рдЧрддрд┐ рдШрдЯрдирд╛ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рдЕрдЧрд▓рд╛, рд╣рдо рдЕрдиреБрд░реЛрдз рдкреВрд░рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВрдбрд▓рд░ рдХреЛ рд╕реНрд╡рдпрдВ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ (рд▓реЛрдбрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд╕рднреА рдбреЗрдЯрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╕рд░реНрд╡рд░ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд┐рд▓реА рд╣реИ), рд╣рдо рджреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реЗрдбрд░ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдЕрдиреБрд░реЛрдз рдмреЙрдбреА рдмрдирд╛рддреЗ рд╣реИрдВ, рдлрд╛рдЗрд▓рд░реИрдбрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдкрд░рд┐рдгрд╛рдо рд╕рдВрдкрддреНрддрд┐ рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝рддреЗ рд╣реИрдВред рдЙрд╕рдХреЗ рдмрд╛рдж, рдбрд╛рдЙрдирд▓реЛрдб рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдореИрдВ рдХреЗрд╡рд▓ рдЗрд╕ рдмрд╛рдд рдкрд░ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рд╡рд░реНрддрдорд╛рди W3C рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдпрд╣ рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ XMLHttpRequest рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕реЗрдВрдб () рд╡рд┐рдзрд┐ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдбреЗрдЯрд╛ рдХреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддреА рд╣реИ, рдЬрд┐рд╕реЗ Google Chrome рдореЗрдВ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдБрдХрд┐, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдореЗрдВ рдпрд╣ рдПрдХ рд╡рд┐рд╢реЗрд╖ SendAsBinary () рд╡рд┐рдзрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреЗ рддрд░реАрдХреЗ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рднреЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЬрд╛рдБрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ SendAsBinary () рд╡рд┐рдзрд┐ рдЕрдиреБрд░реЛрдз рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреА рдЧрдИ рд╣реИ, рдФрд░ рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рд╡рд╣, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдм рд╣реИред рд╣рдо HTML 5 рдХреЗ рдЕрдиреБрдореЛрджрди рдФрд░ рд╡рд┐рддрд░рдг рдХреЗ рд▓рд┐рдП рддрддреНрдкрд░ рд╣реИрдВ!

рдХреБрдЫ рд▓рд┐рдВрдХ

  1. http://safron.pro/playground/html5uploader/ - рдКрдкрд░ рд╡рд░реНрдгрд┐рдд (рдЬреЛ рдХреБрдЫ рдФрд░ рдерд╛) рдХрд╛ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рдЙрджрд╛рд╣рд░рдг
  2. http://safron.pro/playground/html5uploader/full.zip - рд╕рдВрдкреВрд░реНрдг рдХреЛрдб рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рд╣реИ
  3. http://html5test.com - html 5 рдХреЗ рдЕрдиреБрдкрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреА рдЬрд╛рдБрдЪ (рдмрд╣реБрдд рджреГрд╢реНрдп)
  4. http://playground.html5rocks.com - Google рдХреЗ рдХреЛрдб рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдордВрдЪ (рдЗрд╕рдХрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЙрди рд▓реЛрдЧреЛрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдЧрд╛ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛)


рдпреБрдкреАрдбреА
рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ jQuery рдкреНрд▓рдЧрдЗрди рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рдХреЗ рд╕рд╛рде, рдЖрдк рдЬрд╣рд╛рдБ рд╕рдВрднрд╡ рд╣реЛ, рдлрд╝рд╛рдЗрд▓ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд╛рдорд╛рдиреНрдп рдлреЙрд░реНрдо рд╕рдмрдорд┐рд╢рди) рдЬрд╣рд╛рдВ рдирд╣реАрдВред рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЗ рдЕрдиреБрд░реЛрдз рдкрд░ рдФрд░ рдЯрд┐рдкреНрдкрдгреАрдХрд╛рд░реЛрдВ рдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдлреЙрд░реНрдордбрд╛рдЯрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдбрд╛рдЙрдирд▓реЛрдб рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ (рдХреНрд░реЛрдо, рд╕рдлрд╛рд░реА 5+, рдПрдлрдПрдл 4+)ред рдкреНрд▓рдЧрдЗрди рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдорд╛рдкрджрдВрдбреЛрдВ, рд╡рд┐рдзрд┐рдпреЛрдВ, рд╕рд╛рде рд╣реА рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг рд╣реИред рдЙрдкрдпреЛрдЧ рдХрд╛ рдПрдХ рдФрд░ рдкреВрд░рд╛ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдпрд╣ рдЗрд╕ рд▓реЗрдЦ рд╕реЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдХреЗрд╡рд▓ рдкреНрд▓рдЧрдЗрди рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдкреВрд░реНрдг рдХреЛрдб, рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рд╕рд╣рд┐рдд, рдпрд╣рд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ [рджреЗрдЦреЗрдВ UPD2])ред

рд╕реВрддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛

  1. https://developer.mozilla.org/en/using_files_from_web_applications - рдореЛрдЬрд╝рд┐рд▓рд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдлрд╝рд╛рдЗрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦ
  2. https://developer.mozilla.org/En/XMLHttpRequest/Using_XMLHttpRequest - XMLHttpRequest рдХрд╛ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦ
  3. http://www.w3.org/TR/FileAPI/ - W3C рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдлрд╝рд╛рдЗрд▓ рдПрдкреАрдЖрдИ рдХрд╛ рд╡рд░реНрддрдорд╛рди рд╡рд┐рдирд┐рд░реНрджреЗрд╢
  4. http://www.w3.org/TR/XMLHttpRequest2/ - рд╡рд░реНрддрдорд╛рди XMLHttpRequest рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░



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

рдбреЗрдореЛ рдореЗрдВ (рдЬреЛ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рдкрддреЗ рдкрд░ рдЪрд▓рд╛ рдЧрдпрд╛ ), рдХреИрдирд╡рд╛рд╕ рд╕реЗ рдПрдХ рддрд╕реНрд╡реАрд░ рднреЗрдЬрдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред рдлрд┐рд▓рд╣рд╛рд▓ рдпрд╣ рдлреАрдЪрд░ рдПрдлрдПрдл, рдХреНрд░реЛрдо, рдЖрдИрдИ 10 рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд╕реНрд░реЛрдд рдХреЛрдб рдЕрдм GitHub рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ ред рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ, рд╕реБрдЭрд╛рд╡, рд╕реБрдзрд╛рд░ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ!

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


All Articles