Ajax определить размер файла input file

12 3
[Удален]
5391

САБЖ, искал, не нашел ((

нашел только document.images.item('pic').fileSize/1024, но прочел что он работает только в ие.

нужно до сабмитта определить превышает или нет размер загружаемого файла.

psylosss
На сайте с 23.12.2005
Offline
126
#1

1. Технология AJAX вообще не позволяет аплоадить файлы.

2. JS вообще не позволяет узнать размер локального файла.

3. Ваше решение - Flash. Пример отличной реализации - swfupload.org.

Веб-разработка. Сложные проекты. Проектирование. Проект-менеджмент. Стартапы.
[Удален]
#2

psylosss не прав. Я загрузку реализовал через JsHttpRequest, тоесть конечно в связке с php

по твоему jquery и тому подобные библиотеки это не ajax? а на них куча плагинов написано для загрузки файлов.

RU
На сайте с 08.12.2008
Offline
9
#3
KosoyRoman:
psylosss не прав. Я загрузку реализовал через JsHttpRequest, тоесть конечно в связке с php
по твоему jquery и тому подобные библиотеки это не ajax? а на них куча плагинов написано для загрузки файлов.

а можно посмотреть готовое решение?

наверно динамически создаётся форма отправки.. тоесть AJAX как таковой не используется.. но если вы расскажите то чего я не знаю. буду благодарен :)

Real-Unior добавил 28.01.2009 в 12:25

KosoyRoman:
САБЖ, искал, не нашел ((
нашел только document.images.item('pic').fileSize/1024, но прочел что он работает только в ие.
нужно до сабмитта определить превышает или нет размер загружаемого файла.

ни как, иначе это будет считаться "дырой" и такую уязвимость очень с радостью используют кульные хацкеры 😡 :)

доступный способ для оплаты ваших услуг (http://www.smsdostup.ru/3137/) Дивная верстка за $10 (/ru/forum/324509)
G.Vad!k
На сайте с 04.10.2007
Offline
74
#4

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

[Удален]
#5

Real-Unior вот держи, рабочий скрипт


index.html
<script src="JsHttpRequest.js"></script>

<script type="text/javascript" language="JavaScript">
function doLoad(value) {
var req = new JsHttpRequest();
document.getElementById('process').innerHTML = '<div id="loading"><img src="loading.gif" /><br>Идет загрузка...</div>';
req.open(null, 'upload.php', true);
req.send( { video: value } );

req.onreadystatechange = function() {
if (req.readyState == 4) {
document.getElementById('process').innerHTML = '';
document.getElementById('uploads').innerHTML = req.responseText;
}
}
}

</script>

<div id="uploads" align="center"><form method="post" enctype="multipart/form-data" onsubmit="return false"><input type="file" name="video"><input type="button" value=" Загрузить " onclick="doLoad(this.form.video)"></form></div>
<div id="process" align="center"></div>


upload.php

<?php

ignore_user_abort ();
set_time_limit ( '0' );

require_once "JsHttpRequest.php";
$JsHttpRequest = & new JsHttpRequest ( "windows-1251" );

print_f($_FILES);

?>
[Удален]
#6

psylosss - прав во всем. только с флешом 10-ой версии были проблемы...

[Удален]
#7

swfupload лесом его, намучился я с ним когда-то, и так решил проблему в связке JsHttpRequest + php


2. JS вообще не позволяет узнать размер локального файла.

гыы, не js, а свойства обеспечения безопасности браузером.

malls
На сайте с 08.08.2005
Offline
255
#8
psylosss:
1. Технология AJAX вообще не позволяет аплоадить файлы.

Нет заявлений более убедительных чем нелепые.

KosoyRoman порой в этой области:

binary.readBytes(binary.available())

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

[Удален]
#9

JsHttpRequest и ему подобные аплоадинг файла делают через динамически создаваемые iframe. Самостоятельно JS аплоадить файлы не умеет

malls
На сайте с 08.08.2005
Offline
255
#10
nikitian:
Самостоятельно JS аплоадить файлы не умеет

Ну куда ж им сердечным... Они же у клиента работают, а не на сервере...

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий