Получение размера файла в javascript - программирование

Получение размера файла в javascript

задан путь к файлу вроде:
C:\file.jpg
как я могу получить размер файла в javascript?

4b9b3361

Ответ 1

Если это не локальное приложение, работающее на JavaScript с разрешениями полного доступа, вы не можете получить размер любого файла только из имени пути. Веб-страницы, на которых работает javascript, не имеют доступа к локальной файловой системе по соображениям безопасности.

Вы можете использовать изящный унизительный загрузчик файлов, например SWFUpload, если хотите показать индикатор выполнения. HTML5 также имеет File API, но пока еще не поддерживается широко. Если пользователь выбирает файл для элемента input[type=file], вы можете получить информацию о файле из коллекции files:

alert(myInp.files[0].size);

Ответ 2

function findSize() {
    var fileInput =  document.getElementById("fUpload");
    try{
        alert(fileInput.files[0].size); // Size returned in bytes.
    }catch(e){
        var objFSO = new ActiveXObject("Scripting.FileSystemObject");
        var e = objFSO.getFile( fileInput.value);
        var fileSize = e.size;
        alert(fileSize);    
    }
}

Ответ 3

Если вы можете получить доступ к файловой системе пользователя с javascript, снимите изображение, которое может произойти.

Однако вы можете использовать File System Object, но это будет работать только в IE:

http://bytes.com/topic/javascript/answers/460516-check-file-size-javascript

Ответ 4

Вы не можете получить размер файлов локальных файлов с помощью javascript стандартным образом с помощью веб-браузера.

Но если файл доступен с удаленного пути, вы можете отправить запрос HEAD с помощью Javascript и прочитать заголовок Content-length в зависимости от веб-сервера

Ответ 5

Вы не можете, так как нет ввода/вывода файлов в Javascript. См. здесь для опубликованного аналогичного вопроса.

Ответ 6

Вы не можете.

JavaScript не может получить доступ к файлам на локальном компьютере по соображениям безопасности, даже для проверки их размера.

Единственное, что вы можете сделать, это использовать JavaScript для отправки формы с полем file на стороне сервера script, которая затем может измерять его размер и возвращать его.

Ответ 7

Чтобы получить размер файла в Интернете, я построил букмарклет javascript, чтобы сделать трюк. Он оповещает о размере в kb. Измените оповещение на приглашение, если вы хотите скопировать файл.

Здесь код букмарклета для предупреждения.

<a href="javascript:a=document.getElementsByTagName('HTML')[0].outerHTML;b=a.length/1024;c=Math.round(b);alert(c+' kb');">Doc Size</a>

Здесь код букмарклета для подсказки.

<a href="javascript:a=document.getElementsByTagName('HTML')[0].outerHTML;b=a.length/1024;c=Math.round(b);prompt('Page Size',c+' kb');">Doc Size</a>

Посмотрите на действие в http://bookmarklets.to.g0.to/filesize.php

Ответ 8

Попробуйте это.

function showFileSize() {
  let file = document.getElementById("file").files[0];
  if(file) {
    alert(file.size + " in bytes"); 
  } else { 
    alert("select a file... duh"); 
  }
}
<input type="file" id="file"/>
<button onclick="showFileSize()">show file size</button>