проверка загрузки файла на стороне клиента (без загрузки) - PullRequest
1 голос
/ 16 февраля 2011

Я ищу простой в использовании валидатор загрузки на стороне клиента. Он не должен обрабатывать саму загрузку (это прекрасно обрабатывается POST и сценарием на стороне сервера).

Я немного подумал, и ясно, что это невозможно сделать только с помощью js. Другие решения рекомендуют использовать activeX, который, по-видимому, дает противоречивые результаты в разных браузерах.

Flash является очевидным фаворитом, но такие решения для флэш-памяти, как UPLOADIFY и SWFUploader , похоже, связаны с загрузчиками ajax и индикаторами выполнения. Это может нарушить мою существующую форму и сценарии обработки на стороне сервера, поэтому я просто ищу простой механизм для проверки файла либо при размытии, либо при изменении ввода файла или при отправке формы. Но я не хочу, чтобы валидатор делал что-либо, кроме проверки, чтобы мои существующие сценарии загрузки продолжали работать так, как они есть в данный момент.

Это слишком много, чтобы просить?!

Спасибо.

Ответы [ 2 ]

0 голосов
/ 20 марта 2012
<form><fieldset><legend>Image upload</legend> 
<input type=file onchange="getImg(this,500,'jpeg|png')"> 
</fieldset> 
</form> 

<script> 

function getImg(input,max,accepted){ 
    var upImg=new Image(),test,size,msg=input.form; 
    msg=msg.elements[0].children[0]; 

    return input.files?validate(): 
    (upImg.src=input.value,upImg.onerror=upImg.onload=validate); 

        "author: b.b. Troy III p.a.e"; 

    function validate(){ 
        test=(input.files?input.files[0]:upImg); 
        size=(test.size||test.fileSize)/1024; 
        mime=(test.type||test.mimeType); 

    mime.match(RegExp(accepted,'i'))? 
    size>max?(input.form.reset(),msg.innerHTML=max+"KB Exceeded!"): 
    msg.innerHTML="Upload ready...":     
    (input.form.reset(),msg.innerHTML=accepted+" file type(s) only!") 
    } 
} 

</script>  
0 голосов
/ 02 марта 2012

Это должен быть первый рабочий код Проверено на Chrome Safari Firefox Opera и, конечно же, Explorer. проверка загрузки изображения (тип / размер) на стороне клиента

<form><fieldset><legend>Image upload</legend>
<input type=file onchange="getImg(this,500,'jpeg|png')">
</fieldset>
</form>

<script>

function getImg(input,max,accepted){
    var upImg=new Image(),test,size,msg=input.form;
    msg=msg.elements[0].children[0];

    return input.files?validate():
    (upImg.src=input.value,upImg.onerror=upImg.onload=validate);

        "author: b.b. Troy III p.a.e";

    function validate(){
        test=(input.files?input.files[0]:upImg);
        size=(test.size||test.fileSize)/1024;
        mime=(test.type||test.mimeType);

    mime.match(RegExp(accepted,'i'))?
    size>max?(input.form.reset(),msg.innerHTML=max+"KB Exceeded!"):
    msg.innerHTML="Upload ready...":    
    (input.form.reset(),msg.innerHTML=accepted+" file type(s) only!")
    }
}

</script> 

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