Upload sincrono

venerdì 17 febbraio 2012 - 18.02

Gemini Profilo | Expert

Ciao a tutti
utilizzo questo plugin per caricare file con ajax:
http://lagoscript.org/jquery/upload
Sto cercando di utilizzare questa dll anche per la validazione delle immagini. Il problema è che questo plugin è asincrono e appena clicco un tasto salva oltre a richiamare la funzione per il controllo, parte anche il postback della pagina.
Vorrei trovare qualche altro plugin che mi permetta di fare la stessa cosa, ma in maniera sincrona.

Questo è il codice che ho scritto:
function CheckDati(e) {
var errore = false;
var msg_error = '';
$('#dvColori').upload('../../Handler/myFileUpload.ashx?type=colori',
{ 'id': $('#<%= hdIdPlantare.ClientID %>').val(), 'colori': $("#<%= ddlLinea.ClientID %>").find(':selected').attr("colori") },
function (response) {
var result = response.substring(response.indexOf('{'), response.indexOf('}') + 1);
var myObject = eval('(' + result + ')');

if (myObject.error != '') {
alert(myObject.error);
e.preventDefault();
}
},
'text');
}

Grazie mille

TOPOAMORE Profilo | Expert

Ciao,

ma il tasto che hai creato e lato server con onclickclient impiostato sulla funzione????

se e cosi devi cambiare il tasto in quanto anche se hai impostato solo l'evento onclientclick il postback viene effettuato lo stesso, quindi devi creare un semplice tasto html ( <input type='button' /> e non type submit ) con onclick impostato sulla funzione anche perche è anomalo il comportamento che descrivi in quanto ajax non compie il postback

Ciaooo
__.__.__.__.__.__

http://salvatorecervone.wordpress.com

ASP 2.0 - VB 2008

Gemini Profilo | Expert

Ciao
la soluzione che avevo trovato è quella di utilizzare 2 tasti uno visibile che richiamava jquery e uno che eseguiva il postback. Solo che al postback mi dava tutto null al contenuto dei controlli.

TOPOAMORE Profilo | Expert

non ne vedo il motivo..... Crea tutti i tag server......li passi ajquery con il comando

<%=idelemento.clientid%>

ed effettui tutti i passaggi e al postback ritrovi gli elementi compilati

se gli elementi sono html al postback si svuoteranno

facci sapere
__.__.__.__.__.__

http://salvatorecervone.wordpress.com

ASP 2.0 - VB 2008

Gemini Profilo | Expert

ho provato con i controlli lato server, ma esegue il postback senza aspettare l'esito della funzione jquery richiamata.
Ho fatto mille prove

TOPOAMORE Profilo | Expert

scusami ma perche ti sercve il postback......
Che operazione devi fare???
__.__.__.__.__.__

http://salvatorecervone.wordpress.com

ASP 2.0 - VB 2008

Gemini Profilo | Expert

Prima di salvare i dati, voglio controllare se l'immagine scelta è un'immagine valida

TOPOAMORE Profilo | Expert

bene...allora fallo via ajax....
Sempre con jquery

la funzione che ti serve a te e:

$.ajax({
url:'urlpaginadovestailcodice',
data:'parametriseparatida&',
type:'post o get',
success:function(data){il tuo callback}})


e al success passi l upload delle tuo foto

guarda la documentazione jquery....

Ciaoooo
__.__.__.__.__.__

http://salvatorecervone.wordpress.com

ASP 2.0 - VB 2008

Gemini Profilo | Expert

scusa l'ignoranza, ma come faccio a passare tra i parametri il file da controllare?
A me serve passare HttpPostedFile.
Grazie

TOPOAMORE Profilo | Expert

ciao

ma cosa hai bisogno di controllare dei file???

Se sono stati uploadati correttamente o l'estensione oppure dimmi tu.....



__.__.__.__.__.__

http://salvatorecervone.wordpress.com

ASP 2.0 - VB 2008

Gemini Profilo | Expert

Devo controllare se sono effettivamente delle immagini e se hanno una certa width o height

TOPOAMORE Profilo | Expert

ti faccio alcune domande:
se le immagini non sono delle dimensioni da te prefissate l'utente potrebbe tagliarle direttamente dalla tua applicazione????

se cosi fosse potresti fare un bel tool per la redimensione dell'immagine oppure farla tu da codice....

è fattibile per te oppure no????

La verifica se è o meno un 'immagine la fai semplicemente verificando l'estensione....oppure volevi afre altri paragoni???
__.__.__.__.__.__

http://salvatorecervone.wordpress.com

ASP 2.0 - VB 2008

Gemini Profilo | Expert

il controllo dell'estensione non è sufficiente perchè uno potrebbe cambiare l'estensione. Inoltre, devo controlla che i file non abbiano larghezza e altezza inferiore a certi valori

TOPOAMORE Profilo | Expert

perfetto....

che controllo effettui dell'immagine????

cmq la effettui dopo l'upload????
__.__.__.__.__.__

http://salvatorecervone.wordpress.com

ASP 2.0 - VB 2008

Gemini Profilo | Expert

faccio questo:

public static bool ImmagineValidaDimensioni(HttpPostedFile photo, int width, int height)
{
bool valido = false;

if (ImmagineValida(photo))
{
valido = true;
System.Drawing.Image bmpStream = System.Drawing.Image.FromStream(photo.InputStream);
if (bmpStream.Width < width && width > 0)
{
valido = false;
}

if (bmpStream.Height < height && height > 0)
{
valido = false;
}
}

return valido;
}

Ora sì al postback, ma voglio evitare questo

TOPOAMORE Profilo | Expert

Ma mi sa che quello che vuoi realizzare tu non e fattibile in quanto tu non hai accesso fisico all'immagine fino a quando non fai l'upload della stessa sul tuo server...

e quindi li la verifichi l'accetti o la cancelli ma sempre dal server....

tu non puoi interagire con il desktop del client è una violazione di sicurezza che non è consentita se non con un activex che funziona solo con ie è quindi manca di compatibilità.....


__.__.__.__.__.__

http://salvatorecervone.wordpress.com

ASP 2.0 - VB 2008
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5