2017-09-08 1 views
1

Ich habe ein Formular, das nur ein Bild hochlädt, und einen Controller, der dieses Bild im Dateisystem speichert. Dieser Controller gibt dann ein Modell und eine Ansicht zurück, die die Seite neu lädt. Dann habe ich ein img-Tag, das dieses Bild aus dem Dateisystem lädt. Likw dies:Wie aktualisiert man ein div in einer Spring Web App nach dem Senden des Formulars?

<form method="POST" th:action="@{/user}" enctype="multipart/form-data" role="form"> 
    <input type="file" name="file" onchange="this.form.submit()" /> 
    <img th:src="@{/user/{pictureNumber}(pictureNumber=${Id})}"/> 
</form> 

Und dies ist die Steuerung, die das Bild zurückgibt:

@RequestMapping(value = "/user/{pictureNumber}") 
@ResponseBody 
public byte[] getImage(@PathVariable(value = "pictureNumber") String userId) throws IOException { 
    File directory= new File("..path"+pictureNumber); 
    return Files.readAllBytes(directory); 
} 

Nachdem ich die Seite aktualisieren, es zeigt dann das geladene Bild. Wie mache ich es, dass nach dem Senden des Formulars, nachdem das Bild gespeichert wurde, das Div, wo das Img-Tag ist es derzeit neu geladen werden, so dass in das Bild ohne zu aktualisieren angezeigt wird?

+0

Haben Sie aber über AJAX? – holmis83

Antwort

1

können Sie versuchen, die Seite nach dem Formular Vorlage erneut zu laden:

<form method="POST" th:action="@{/user}" enctype="multipart/form-data" role="form"> 
    <input type="file" name="file" onchange="this.form.submit(); location.reload();" /> 
    <img th:src="@{/user/{pictureNumber}(pictureNumber=${Id})}"/> 
</form> 
Verwandte Themen