Ich benutze die <rich:fileUpload />
von RichFaces4, wie Sie sehen können aquí . Aber wie Sie sehen können, kann der Benutzer dort eine Menge Bilder auswählen, aber ich möchte, dass er nur ein Bild auswählen kann.
Und wie rufe ich eine Methode in meiner verwalteten Bohne (die das Bild zu meinem Amazon S3 Bucket senden), nachdem der Upload abgeschlossen ist?
EDITAR:
<ui:composition>
<h:outputStylesheet>
.top {
vertical-align: top;
}
.info {
height: 202px;
overflow: auto;
}
.rf-fu-lst {
height: 60px;
}
.rf-fu-itm {
border: 0;
}
</h:outputStylesheet>
<h:outputScript target="head">
jQuery.extend(RichFaces.ui.FileUpload.prototype, {
__updateButtons: function() {
if (!this.loadableItem && this.list.children(".rf-fu-itm").size()) {
if (this.items.length) {
this.uploadButton.css("display", "inline-block");
this.addButton.hide();
} else {
this.uploadButton.hide();
this.addButton.css("display", "inline-block");
}
} else {
this.uploadButton.hide();
this.addButton.css("display", "inline-block");
}
}
});
</h:outputScript>
<h:form id="form_user_upload_picture" >
<h:panelGrid columns="2" columnClasses="top, top">
<rich:fileUpload
id="upload"
fileUploadListener="#{user_file_upload.listener}"
acceptedTypes="jpg, gif, png, bmp"
addLabel="Adicionar"
clearAllLabel="Limpar todas"
clearLabel="limpar"
deleteLabel="apagar"
doneLabel="upload realizado"
sizeExceededLabel="arquivo muito grande, tente um arquivo de tamanho menor"
serverErrorLabel="ocorreu um erro em nosso servidor, tente novamente por favor"
uploadLabel="Enviar">
<a4j:ajax event="uploadcomplete" execute="@none" render="picture" />
</rich:fileUpload>
</h:panelGrid>
</h:form>
</ui:composition>