Я пытаюсь реализовать загрузку файла primefaces с помощью imageCropper для изменения аватара пользователя по адресу https.
Я загружаю изображение и сохраняю его во временную папку сервера приложений.
Я передал загруженное изображение в файл primefaces imageCropper с помощью WebServletиз временного пути сервера
Когда я использую http, все работает нормально, но когда я перешел в https, у меня появляется ошибка {0}: Conversion error occurred.
Это мой код:
xhtml code
<p:imageCropper
id="avatarImage"
image="https://#{request.serverName}:#{request.serverPort}#{request.contextPath}/reports/#{UserpreferencesBean.imageFilePath}"
value="#{UserpreferencesBean.croppedImage}"
aspectRatio="1.0" initialCoords="225,75,300,125"
boxWidth="400"
boxHeight="400"
minSize="90,90"/>
<br/>
<p:commandButton id="cropButton"
value="Crop"
action="#{UserpreferencesBean.crop()}"
update="form:messages image avatarImage avatarForm"
icon="ui-icon-scissors"/>
Код компонента
public void crop() throws IOException {
avatarImage = new DefaultStreamedContent(null);
avatarImage = new DefaultStreamedContent(new ByteArrayInputStream(croppedImage.getBytes()));
in = new ByteArrayInputStream(croppedImage.getBytes());
avatarByteArray = croppedImage.getBytes();
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Success", "Cropping finished."));
}
Код WebServlet
@WebServlet("/reports/*")
public class ImageServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String filename = request.getPathInfo().substring(1);
File file = new File(System.getProperty("jboss.server.temp.dir"), filename);
response.setHeader("Content-Type", getServletContext().getMimeType(filename));
response.setHeader("Content-Length", String.valueOf(file.length()));
response.setHeader("Content-Disposition", "inline; filename="+File.separator + filename + File.separator );
Files.copy(file.toPath(), response.getOutputStream());
}
}
Некоторые примечания
-> Мой ssl недействителен.Я использую самоподписанный сертификат
-> Мой сервер приложений - Wildfly 16