Ho una forma di upload come questo (form.gsp
):Come ottenere byte (byte []) da un file caricato in Grails
<html>
<head>
<title>Upload Image</title>
<meta name="layout" content="main" />
</head>
<body>
<g:uploadForm action ="upload">
Photo: <input name="photos" type="file" />
<g:submitButton name="upload" value="Upload" />
</g:uploadForm>
</body>
</html>
mi aspetto all'utente di caricare qualsiasi immagine, e quando si fa clic su il pulsante upload
, ho bisogno di un modo per ottenere l'immagine nella mia azione di controllo e lo passò alla vista:
def upload = {
byte[] photo = params.photos
//other code goes here . . . .
}
Questo genera un errore:
Cannot cast object '[email protected]b40272' with class 'org.springframework.web.multipart.commons.CommonsMultipartFile' to class 'byte'
Nota che non voglio che queste foto vengano salvate sul mio DB. In realtà una volta eseguita l'azione , elaborerò con quell'immagine e mostrerò l'output nella vista . Quindi andrà bene se avrò una soluzione per questo.
Grazie in anticipo.
Questo sembra fantastico ma quando visualizzo 'elsewhere.gsp' non riesco a vedere alcuna immagine! –
Hmm, interessante. Il codice sopra ha funzionato per me, alla lettera. Che cosa dice la pagina è la fonte dell'immagine? Forse è possibile aggiungere alcune registrazioni per facilitare il debug. –
Spiacente funzionava, ho fatto un refuso nel nome del controller: grazie per la tua roba :) –