1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
|
/**
* {@inheritDoc}
*
* @see org.apache.struts.actions.DispatchAction#unspecified(org.apache.struts.action.ActionMapping,
* org.apache.struts.action.ActionForm,
* javax.servlet.http.HttpServletRequest,
* javax.servlet.http.HttpServletResponse)
*/
@Override
protected ActionForward unspecified(final ActionMapping mapping,
final ActionForm form,
final javax.servlet.http.HttpServletRequest request,
final javax.servlet.http.HttpServletResponse response)
throws java.lang.Exception {
SufficientProfileRights.isAccessAllowed(request,
SufficientProfileRights.FCTN_SETTINGS_CHANNEL);
return mapping.findForward("detail");
}
/**
* Load the image file selected
*
* @param mapping
* @param form
* @param request
* @param response
* @return
*/
public ActionForward loadImage(final ActionMapping mapping,
final ActionForm form,
final HttpServletRequest request,
final HttpServletResponse response) throws Exception {
SufficientProfileRights.isAccessAllowed(request,
SufficientProfileRights.FCTN_SETTINGS_CHANNEL);
Set<Contact> contacts = null;
// Get the information in form
// ============================
ChannelDetailForm channelDetailForm = (ChannelDetailForm) form;
FormFile[] mediaLogoFiles = channelDetailForm.getMediaLogoFile();
FormFile channelLogoFile = channelDetailForm.getChannelLogoFile();
String channelId = channelDetailForm.getChannelId();
String imageLink = channelDetailForm.getImageLink();
BufferedImage imageBuffer = null;
ActionErrors errors;
try {
// Get the content of the file
byte[] fileData = channelLogoFile.getFileData();
imageBuffer = ImageIO.read(channelLogoFile.getInputStream());
if (imageBuffer == null) {
errors = removeErrors(ChannelDetailForm.FIELD_CHANNEL_LOGO_URL, errors);
errors.add(ChannelDetailForm.FIELD_CHANNEL_LOGO_URL,
new ActionMessage("error.field.file.image.invalid"));
} else {
// Instanciate a new ImageDto
ImageDto imageDto = new ImageDto();
imageDto.addAttribute(ImageDto.STR_ORIGIN_KEY, ImageDto.ORIGIN_VALUE_MEMORY);
if ((channelId == null) || (channelId.length() <= 0)) {
imageDto.addAttribute(ImageDto.INT_CHANNEL_ID_KEY,
ChannelDetailAction.CHANNEL_ID_NEW);
} else {
imageDto.addAttribute(ImageDto.INT_CHANNEL_ID_KEY, channelId);
}
// Store the content of the image file
final SessionContextData sessionContextData = getSessionContextData(request);
sessionContextData.putImage(imageDto, fileData);
// Get the url of the image file stored
String imageFileUrl = helperTool.getImageUrlForImageDto(imageDto);
// Update the channel logo url
channelDetailForm.setChannelLogoUrl(imageFileUrl);
}
} catch (IOException e) {
errors = removeErrors(ChannelDetailForm.FIELD_CHANNEL_LOGO_URL, errors);
errors.add(ChannelDetailForm.FIELD_CHANNEL_LOGO_URL,
new ActionMessage("error.file.read"));
LOGGER.error("Cannot read the channel logo for channel " + channelId);
}
if (errors != null && !errors.isEmpty()) {
saveErrors(request, errors);
}
// save information in request
request.setAttribute("ChannelDetailForm", channelDetailForm);
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("ChannelDetailAction.loadImage : END");
}
return mapping.findForward("success");
} |
Partager