Javascript для проверки размера файла перед загрузкой в ​​Internet Explorer - PullRequest
12 голосов
/ 02 сентября 2011

Можно ли использовать Javascript для проверки размера файла (на стороне клиента) перед его фактической загрузкой на сервер?

Приложение построено на EXTJS и Java и ограничено использованием Internet Explorere 7 на компьютерах с Windows XP. Использование ActiveX не допускается.

Рабочий процесс таков: Пользователь выбирает файл для загрузки. Проверка запускается немедленно, чтобы проверить тип файла и размер файла. Если размер файла превышает лимит, графический интерфейс выдаст сообщение с ошибкой. Если размер файла находится в пределах ограничения, полный путь к файлу будет передан на серверную часть (сервлет Java) для загрузки.

Возможна ли проверка размера файла и чтение полного пути к файлу с помощью javascript?

Ответы [ 4 ]

4 голосов
/ 02 сентября 2011

Это возможно с объектами ActiveX.

<html>
<head>
<script>
function getSize()
{
    var myFSO = new ActiveXObject("Scripting.FileSystemObject");
    var filepath = document.upload.file.value;
    var thefile = myFSO.getFile(filepath);
    var size = thefile.size;
    alert(size + " bytes");
}
</script>
</head>
<body>
<form name="upload">
<input type="file" name="file">
<input type="button" value="Size?" onClick="getSize();">
</form>
</body>
</html>
3 голосов
/ 02 сентября 2011

В настоящее время нет возможности проверить размер загружаемого файла из веб-браузера. HTML5 File API делает это возможным, но это не доступно в MSIE7 - в настоящее время он работает на MSIE10.

Умышленно нет никакого способа определить полный путь к загруженному файлу,поскольку это может включать конфиденциальную информацию, такую ​​как имя конечного пользователя.

0 голосов
/ 27 марта 2014

Пожалуйста, попробуйте ниже код,

<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.js"></script>
<script type="text/javascript">
$(function() {
$("document").ready(function(){
        $("#myFile1").change(function() {

        var f1=document.getElementById("myFile1").value;
        if((f.size||f.fileSize)==09765625)
        {
        alert("file size is less than 1mb");
        }
        else
        {
        alert("file size should not exceed more than 1mb");
                $(this).val($.data(this, 'f'));
        return false;
        }

            });
});
})
</script>
</head>
<body>

<input type='file' name="file" id="myFile1" />

</body>
</html>
0 голосов
/ 02 сентября 2011

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

Это активно отрицается и может рассматриваться как атака.

Использование jQuery, ограничение размера файла перед загрузкой

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...