Beispiel für das Hochladen von Wicket-Dateien
Beispiel, das Ihnen zeigt, wie Sie eine WicketFileUploadField-Komponente erstellen, damit der Benutzer eine Datei vom lokalen Laufwerk auswählen und auf den Server hochladen kann.
//Java import org.apache.wicket.markup.html.form.upload.FileUploadField; form.setMultiPart(true); form.add(fileUpload = new FileUploadField("fileUpload")); //HTML
Um eine Datei hochzuladen, müssen Sie "multipart mode" in der Wicket-Formularkomponente aktivieren.
1. FileUpload-Beispiel
Beispiel zum Rendern einer Datei-Upload-Komponente und zum Begrenzen vonuploaded file size to 10k. Die neu hochgeladene Datei wird an einem vordefinierten Ort gespeichert.
package com.example.user; import java.io.File; import org.apache.wicket.PageParameters; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.form.upload.FileUpload; import org.apache.wicket.markup.html.form.upload.FileUploadField; import org.apache.wicket.markup.html.panel.FeedbackPanel; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.util.lang.Bytes; public class FileUploadPage extends WebPage { private FileUploadField fileUpload; private String UPLOAD_FOLDER = "C:\\"; public FileUploadPage(final PageParameters parameters) { add(new FeedbackPanel("feedback")); Form> form = new Form("form") { @Override protected void onSubmit() { final FileUpload uploadedFile = fileUpload.getFileUpload(); if (uploadedFile != null) { // write to a new file File newFile = new File(UPLOAD_FOLDER + uploadedFile.getClientFileName()); if (newFile.exists()) { newFile.delete(); } try { newFile.createNewFile(); uploadedFile.writeTo(newFile); info("saved file: " + uploadedFile.getClientFileName()); } catch (Exception e) { throw new IllegalStateException("Error"); } } } }; // Enable multipart mode (need for uploads file) form.setMultiPart(true); // max upload size, 10k form.setMaxSize(Bytes.kilobytes(10)); form.add(fileUpload = new FileUploadField("fileUpload")); add(form); } }
2. HTML-Seite
Rendern Sie die Komponente über ein HTML-Eingabe-Tag.
Wicket file upload example
3. Demo
Start und Besuch -http://localhost:8080/WicketExamples/
Wenn die Dateigröße mehr als 10 KB beträgt, wird ein Anzeigefehler angezeigt
Alles in Ordnung, Namen der gespeicherten Datei anzeigen.
Laden Sie es herunter -Wicket-FileUpload-Example.zip (7 KB)