Есть ли способ проверить размер файла до загрузки на сервер?

#1 17 августа 2012 в 23:52
Надо устроить проверку размера загружаемого файла на сайт до его загрузки, т.е. на стороне клиента. Средствами PHP смогнула измерить его только после загрузки на сервер, но это не айс файлы могут быть и по 100мб, а надо не более например 10мб, еще могу ограничить размер загружаемого файла, но тоже надо на сервер грузить и при превышении лимита сервер отрубает загрузку. Может кто-нибудь сталкивался с аякс решением или флэш? Буду признательна если кто-нибудь поделится кодом zst
FILE API не предлагать
#2 18 августа 2012 в 00:22
Флэшь загрузчики умеют это делать. В инстанте такой встроен при загрузке фоток кажись. Но он же может и файлы лить.
вот он ссылка проекта swfupload
#3 18 августа 2012 в 10:11

FILE API не предлагать

YataMaria
А чем оно вас не устраивает? :)

вот вариант реализации не на флеше
  1.  
  2. <input type="file" id="files" name="files[]" multiple />
  3. <output id="list"></output>
  4. <script>
  5. function handleFileSelect(evt) {
  6. var files = evt.target.files; // FileList object
  7. // files is a FileList of File objects. List some properties.
  8. var output = [];
  9. for (var i = 0, f; f = files[i]; i++) {
  10. output.push('<li><strong>', escape(f.name), '</strong> (', f.type || 'n/a', ') - ',
  11. f.size, ' bytes, last modified: ',
  12. f.lastModifiedDate.toLocaleDateString(), '</li>');
  13. }
  14. document.getElementById('list').innerHTML = '<ul>' + output.join('') + '</ul>';
  15. }
  16. document.getElementById('files').addEventListener('change', handleFileSelect, false);
  17. </script>
  18.  
нормально работает, можно получить всю информацию которая требуется.
#4 18 августа 2012 в 10:38
второй вариант чистый JS
  1.  
  2.  
  3.  
  4. function imgLoad()
  5. {
  6. var strT = new String();
  7. document.getElementById("ShowImg").innerHTML= "";
  8. strT = document.ModReg.file1.value;
  9. if(strT != "")
  10. {
  11. strT = "<img ;id='Sample' src='" + strT + "' width='100' height='100'></img>";
  12. document.getElementById("ShowImg").innerHTML= strT;
  13. if(!LimitedSize())
  14. {
  15. alert("File&nbsp;Size is more than 100 KB");
  16. document.getElementById("ShowImg").innerHTML= "";
  17. }
  18. }
  19. }
  20.  
  21. function LimitedSize()
  22. {
  23. var i;
  24. var y = document.images;
  25. for (i=0;i<y.length;i++)
  26. {
  27. if((y[i].id) == 'Sample')
  28. {
  29. if(y[i].fileSize&nbsp;> 102400)
  30. return false;
  31. }
  32. }
  33. return true;
  34. }
  35.  
  36.  
  37.  
  38.  
  39. <INPUT
  40. name=file1 type=file id="file1" onChange="imgLoad()" >
  41.  
  42.  
  43.  
#5 18 августа 2012 в 11:00
maxisoft, вы просто душка smileспасибо большое!
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.