Как узнать размер файла перед загрузкой? - PullRequest
0 голосов
/ 04 июня 2011

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

Я нашел Проверить размер файла перед загрузкой файла , носкрипт не работает с Internet Explorer 6, 7 или 8. Я не тестировал IE 9. Я ищу скрипт, который будет работать корректно с любым браузером.

Ответы [ 2 ]

1 голос
/ 04 июня 2011

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

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

С некоторой помощью из ExternalInterface класса вы можете вызвать функцию JavaScript и дать ейэта информация.

Затем вы можете загрузить файл из Flash вместо обычного элемента ввода, если размер файла соответствует.

Проверьте загрузчик YUI длядействительно простой в использовании и хорошо документированный бесплатный компонент, который обрабатывает все это для вас (вам нужно всего лишь написать немного JavaScript, и вы можете стилизовать готовый компонент Flash так, как вам хочется).

0 голосов
/ 23 мая 2017

Я добавлю этот ответ всем, после этого можно использовать:

function findSizeandalert() {
    var fileInput =  document.getElementById("fileupld");
    try{
        var fsize = fileInput.files[0].size; // Size returned in bytes.
        var fsizekb = fsize/1024;  // Size Convert to KBytes.

        if(fsizekb>100){
            alert("Your File size is more than specific size; Size of your file"+fsizekb.toFixed(2)+" KB");
            return false;
        }
    }catch(e){
        var objFSO = new ActiveXObject("Scripting.FileSystemObject");
        var e = objFSO.getFile( fileInput.value);
        var fileSize = e.size;
        var fsizekb = filesize/1024;

        if(fsizekb>100){
            alert("Your File size is more than specific size; Size of your file.(CC)"+fsizekb.toFixed(2)+" KB"); 
            return false;
        }
    }
    return true;
}

Тогда в вашей форме на событиях отправки:

 <form method="post" enctype="multipart/form-data" name="frm_upload" onSubmit="return findSizeandalert()">
    <input id="fileupld"  type="file" name="fupl" accept="image/x-png,image/jpeg" >
...