Il modo migliore per assicurarsi che l'utente non carichi immagini di dimensioni superiori a 1 MB

StackOverflow https://stackoverflow.com/questions/810886

Domanda

Sto usando ASP.net con VB.NET. Esiste un validatore che posso usare per controllare le dimensioni dell'immagine caricata? Altrimenti cosa devo fare nel codice per assicurarmi che l'utente non carichi immagini più di 1 MB?

Anche il codice C # p.s farà, posso usare un convertitore per VB.NET

Modifica

Per qualche motivo quando cambio maxRequestLength a 1024 (nel mio WEB.config) e carico un'immagine con dimensione 1,25 mb, visualizzo la pagina di errore Microsoft che dice "Internet Explorer non può visualizzare la pagina web". E ho un blocco Try Catch all'interno del mio pulsante Invia. Se rimuovo maxRequestLength dal mio Web.config, allora funziona perfettamente.

È stato utile?

Soluzione

Questo è in definitiva gestito in Web.config. Cerca la sezione httpRuntime:

<httpRuntime 
 executionTimeout="110" 
 maxRequestLength="4096" 
/>

Esistono molte altre impostazioni in httpRuntime ma queste sono le due rilevanti. Qui, maxRequestLength è impostato su 4096 o 4KB (il numero è in byte). Quindi, imposta questo valore di conseguenza. Inoltre, vorrai impostare l'esecuzioneTimeout di conseguenza, in modo da concedere un ragionevole lasso di tempo per caricare qualunque sia il tuo massimo caricamento.

Altri suggerimenti

Puoi usare il seguente codice per determinare la dimensione [in KB] del file caricato e una volta che conosci la dimensione puoi decidere facilmente se vuoi procedere ulteriormente con il file o rifiutare il caricamento.

Request.Files(0).ContentLength / 1024

L'errore Impossibile visualizzare la pagina Web si verifica perché ASP.NET interrompe la connessione per richieste di grandi dimensioni per mitigare gli attacchi DOS basati su richieste di grandi dimensioni. Per ovviare a questo, dovresti fare il caricamento in un iframe e quindi rilevare se si è verificato un errore o meno. Puoi anche utilizzare un componente uploader flash, silverlight, java o activex installato sul client per convalidare la dimensione del file lato client, ma ciò richiederà l'installazione a seconda della tua soluzione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top