Я пытаюсь исправить этот код, загружая файл изображения с помощью Struts 2.
Во время отладки я проверял в своем классе действий дескриптор переменных, descriptorContentType и descriptorFileName имеют значение null.
Я пытался найти проблему, но безрезультатно. Вот мой код, кто-нибудь знает, что с этим кодом не так?
ver.jsp:
struts.xml:
/validador/cliente/fichaEmpresa/imagen/listar.jsp
listado
${codigoFichaEmpresa}
/validador/cliente/fichaEmpresa/imagen/ver.jsp
10485760
image/jpeg,image/png,image/gif
/validador/cliente/fichaEmpresa/imagen/imagenCorrecta.jsp
/validador/cliente/fichaEmpresa/imagen/ver.jsp
/validador/cliente/fichaEmpresa/imagen/listar.jsp
listado
${codigoFichaEmpresa}
FichaEmpresaImagenAction.java:
package com.construdata21.construdata.validador.vista.actions.cliente;
import com.construdata21.construdata.cliente.negocio.fachadas.FachadaCliente;
import com.construdata21.construdata.negocio.modelo.Archivo;
import com.construdata21.construdata.negocio.modelo.ArchivoImagen;
import com.construdata21.construdata.negocio.modelo.FichaEmpresa;
import com.construdata21.construdata.negocio.modelo.UsuarioConstrudata;
import com.construdata21.construdata.validador.negocio.fachadas.FachadaValidador;
import com.construdata21.construdata.validador.vista.actions2.ValidadorAction;
import com.construdata21.construdata.vista.comun.FachadaSesion;
import static com.opensymphony.xwork2.Action.SUCCESS;
import com.opensymphony.xwork2.ModelDriven;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.util.Date;
import javax.imageio.ImageIO;
import org.apache.struts2.interceptor.validation.SkipValidation;
public class FichaEmpresaImagenAction
extends ValidadorAction
implements ModelDriven {
public static final int MAX_ANCHO_IMAGEN = 1024;
public static final int MAX_ALTO_IMAGEN = 800;
/**
* Atributo que conten a imaxe
*/
private final ArchivoImagen imagen = new ArchivoImagen();
/**
*
* @return imagen Archivo coa imaxe
*/
@Override
public Archivo getModel() {
return imagen;
}
/**
* Atributo que contén as imaxes da ficha empresa
*/
private Archivo[] imagenes;
/**
* Metodo que retorna o atributo imagenes
*
* @return imagenes Archivo[] coas imaxes
*/
public Archivo[] getImagenes() {
return imagenes;
}
/**
* Atributo co descriptor do arquivo
*/
private File descriptor;
/**
* Método que nos devolve o descriptor do arquivo
*
* @return File co descriptor
*/
public File getDescriptor() {
return descriptor;
}
/**
* Método que establece o descriptor do arquivo
*
* @param descriptor File
*/
public void setDescriptor(File descriptor) {
this.descriptor = descriptor;
}
private String descriptorContentType;
/**
* Content type do arquivo
*
* @return String descriptorContentType
*/
public String getDescriptorContentType() {
return descriptorContentType;
}
/**
* Método que establece o content type
*
* @param descriptorContentType
*/
public void setDescriptorContentType(String descriptorContentType) {
this.descriptorContentType = descriptorContentType;
}
/**
* Atributo co nome do descriptor
*/
private String descriptorFileName;
/**
* Método que nos devolve o nome do arquivo
*
* @return String
*/
public String getDescriptorFileName() {
return descriptorFileName;
}
/**
* Método que nos establece o nome do arquivo
*
* @param descriptorFileName
*/
public void setDescriptorFileName(String descriptorFileName) {
this.descriptorFileName = descriptorFileName;
}
/**
* Atributo que representa o codigo da ficha empresa
*/
private int codigoFichaEmpresa;
/**
* Metodo que retorna o codigo da ficha empresa
*
* @return codigoFichaEmpresa int co codigo
*/
public int getCodigoFichaEmpresa() {
return codigoFichaEmpresa;
}
/**
* Metodo que establece o codigo da ficha empresa
*
* @param codigoFichaEmpresa int co codigo
*/
public void setCodigoFichaEmpresa(int codigoFichaEmpresa) {
this.codigoFichaEmpresa = codigoFichaEmpresa;
}
/**
* Método encargado de visualizar unha imaxe da ficha empresa
*
* @return String co resultado da execución do action
* @throws Exception
*/
@SkipValidation
public String ver() throws Exception {
return SUCCESS;
}
/**
* Método encargado de gardar unha imaxe da ficha empresa
*
* @return String co resultado da execución do action
* @throws Exception
*/
public String guardar() throws Exception {
UsuarioConstrudata usuario = (UsuarioConstrudata) this.getSession().get(FachadaSesion.USUARIO_SESION_VALIDADOR);
if (codigoFichaEmpresa > 0) {
imagen.setArchivo(Files.readAllBytes(descriptor.toPath()));
imagen.setLongitud(descriptor.getTotalSpace());
imagen.setNombre(descriptorFileName);
imagen.setFechaValidacion(new Date());
imagen.setCodigo(FachadaValidador.guardarImagenFichaEmpresa(codigoFichaEmpresa, imagen, usuario));
FachadaValidador.validarArchivoImagen(
imagen.getCodigo(),
usuario.getCodigo());
}
return SUCCESS;
}
/**
* Metodo que executa a accion de eliminar as imaxes
*
* @return String co resultado
* @throws java.lang.Exception
*/
@SkipValidation
public String eliminar() throws Exception {
UsuarioConstrudata usuario = (UsuarioConstrudata) this.getSession().get(FachadaSesion.USUARIO_SESION_VALIDADOR);
if (codigoFichaEmpresa > 0 && imagen.getCodigo() > 0) {
FachadaValidador.fichaEmpresaImagenEliminar(codigoFichaEmpresa,
imagen.getCodigo(),
usuario);
}
return SUCCESS;
}
/**
* Metodo que executa a accion de listar
*
* @return String co resultado
* @throws java.lang.Exception
*/
@SkipValidation
public String listado() throws Exception {
UsuarioConstrudata usuarioSesion = (UsuarioConstrudata) getSession().get(FachadaSesion.USUARIO_SESION_VALIDADOR);
FichaEmpresa fichaEmpresa = FachadaCliente.getFichaEmpresaCompleta(codigoFichaEmpresa, usuarioSesion);
imagenes = fichaEmpresa.getImagenes();
return SUCCESS;
}
/**
* Metodo que executa a accion de listar
*
* @return String co resultado
* @throws java.lang.Exception
*/
@SkipValidation
public String moverImagen() throws Exception {
if (imagen.getCodigo() > 0 && codigoFichaEmpresa > 0) {
FachadaCliente.modificarOrdenImagenFichaEmpresa(
codigoFichaEmpresa,
imagen.getCodigo(),
imagen.getOrden()
);
}
UsuarioConstrudata usuarioSesion = (UsuarioConstrudata) getSession().get(FachadaSesion.USUARIO_SESION_VALIDADOR);
FichaEmpresa fichaEmpresa = FachadaCliente.getFichaEmpresaCompleta(codigoFichaEmpresa, usuarioSesion);
imagenes = fichaEmpresa.getImagenes();
return SUCCESS;
}
/**
* Metodo que valida unha imaxe
*
* @return resultado String co resultado
* @throws Exception
*/
@SkipValidation
public String validarImagen() throws Exception {
if (imagen.getCodigo() > 0) {
UsuarioConstrudata usuario = (UsuarioConstrudata) this.getSession().get(FachadaSesion.USUARIO_SESION_VALIDADOR);
FachadaValidador.validarArchivoImagen(imagen.getCodigo(), usuario.getCodigo());
}
return SUCCESS;
}
/**
* Metodo que valida o formulario (Imaxe)
*/
@Override
public void validate() {
super.validate();
BufferedImage img = null;
if (descriptor != null) {
try {
img = ImageIO.read(descriptor);
} catch (IOException ex) {
}
if (img != null) {
if (img.getWidth() > MAX_ANCHO_IMAGEN) {
this.addFieldError("descriptor", "Ha superado el ancho permitido: " + MAX_ANCHO_IMAGEN);
} else if (img.getHeight() > MAX_ALTO_IMAGEN) {
this.addFieldError("descriptor", "Ha superado el alto permitido: " + MAX_ALTO_IMAGEN);
}
} else {
this.addFieldError("descriptor", "El archivo no es una imagen");
}
} else {
this.addFieldError("descriptor", "Selecciona un archivo");
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... n-struts-2
Почему при загрузке файла мой файловый объект имеет значение null в Struts 2? ⇐ JAVA
Программисты JAVA общаются здесь
1732992924
Anonymous
Я пытаюсь исправить этот код, загружая файл изображения с помощью Struts 2.
Во время отладки я проверял в своем классе действий дескриптор переменных, descriptorContentType и descriptorFileName имеют значение null.
Я пытался найти проблему, но безрезультатно. Вот мой код, кто-нибудь знает, что с этим кодом не так?
[b]ver.jsp:[/b]
[b]struts.xml:[/b]
/validador/cliente/fichaEmpresa/imagen/listar.jsp
listado
${codigoFichaEmpresa}
/validador/cliente/fichaEmpresa/imagen/ver.jsp
10485760
image/jpeg,image/png,image/gif
/validador/cliente/fichaEmpresa/imagen/imagenCorrecta.jsp
/validador/cliente/fichaEmpresa/imagen/ver.jsp
/validador/cliente/fichaEmpresa/imagen/listar.jsp
listado
${codigoFichaEmpresa}
[b]FichaEmpresaImagenAction.java:[/b]
package com.construdata21.construdata.validador.vista.actions.cliente;
import com.construdata21.construdata.cliente.negocio.fachadas.FachadaCliente;
import com.construdata21.construdata.negocio.modelo.Archivo;
import com.construdata21.construdata.negocio.modelo.ArchivoImagen;
import com.construdata21.construdata.negocio.modelo.FichaEmpresa;
import com.construdata21.construdata.negocio.modelo.UsuarioConstrudata;
import com.construdata21.construdata.validador.negocio.fachadas.FachadaValidador;
import com.construdata21.construdata.validador.vista.actions2.ValidadorAction;
import com.construdata21.construdata.vista.comun.FachadaSesion;
import static com.opensymphony.xwork2.Action.SUCCESS;
import com.opensymphony.xwork2.ModelDriven;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.util.Date;
import javax.imageio.ImageIO;
import org.apache.struts2.interceptor.validation.SkipValidation;
public class FichaEmpresaImagenAction
extends ValidadorAction
implements ModelDriven {
public static final int MAX_ANCHO_IMAGEN = 1024;
public static final int MAX_ALTO_IMAGEN = 800;
/**
* Atributo que conten a imaxe
*/
private final ArchivoImagen imagen = new ArchivoImagen();
/**
*
* @return imagen Archivo coa imaxe
*/
@Override
public Archivo getModel() {
return imagen;
}
/**
* Atributo que contén as imaxes da ficha empresa
*/
private Archivo[] imagenes;
/**
* Metodo que retorna o atributo imagenes
*
* @return imagenes Archivo[] coas imaxes
*/
public Archivo[] getImagenes() {
return imagenes;
}
/**
* Atributo co descriptor do arquivo
*/
private File descriptor;
/**
* Método que nos devolve o descriptor do arquivo
*
* @return File co descriptor
*/
public File getDescriptor() {
return descriptor;
}
/**
* Método que establece o descriptor do arquivo
*
* @param descriptor File
*/
public void setDescriptor(File descriptor) {
this.descriptor = descriptor;
}
private String descriptorContentType;
/**
* Content type do arquivo
*
* @return String descriptorContentType
*/
public String getDescriptorContentType() {
return descriptorContentType;
}
/**
* Método que establece o content type
*
* @param descriptorContentType
*/
public void setDescriptorContentType(String descriptorContentType) {
this.descriptorContentType = descriptorContentType;
}
/**
* Atributo co nome do descriptor
*/
private String descriptorFileName;
/**
* Método que nos devolve o nome do arquivo
*
* @return String
*/
public String getDescriptorFileName() {
return descriptorFileName;
}
/**
* Método que nos establece o nome do arquivo
*
* @param descriptorFileName
*/
public void setDescriptorFileName(String descriptorFileName) {
this.descriptorFileName = descriptorFileName;
}
/**
* Atributo que representa o codigo da ficha empresa
*/
private int codigoFichaEmpresa;
/**
* Metodo que retorna o codigo da ficha empresa
*
* @return codigoFichaEmpresa int co codigo
*/
public int getCodigoFichaEmpresa() {
return codigoFichaEmpresa;
}
/**
* Metodo que establece o codigo da ficha empresa
*
* @param codigoFichaEmpresa int co codigo
*/
public void setCodigoFichaEmpresa(int codigoFichaEmpresa) {
this.codigoFichaEmpresa = codigoFichaEmpresa;
}
/**
* Método encargado de visualizar unha imaxe da ficha empresa
*
* @return String co resultado da execución do action
* @throws Exception
*/
@SkipValidation
public String ver() throws Exception {
return SUCCESS;
}
/**
* Método encargado de gardar unha imaxe da ficha empresa
*
* @return String co resultado da execución do action
* @throws Exception
*/
public String guardar() throws Exception {
UsuarioConstrudata usuario = (UsuarioConstrudata) this.getSession().get(FachadaSesion.USUARIO_SESION_VALIDADOR);
if (codigoFichaEmpresa > 0) {
imagen.setArchivo(Files.readAllBytes(descriptor.toPath()));
imagen.setLongitud(descriptor.getTotalSpace());
imagen.setNombre(descriptorFileName);
imagen.setFechaValidacion(new Date());
imagen.setCodigo(FachadaValidador.guardarImagenFichaEmpresa(codigoFichaEmpresa, imagen, usuario));
FachadaValidador.validarArchivoImagen(
imagen.getCodigo(),
usuario.getCodigo());
}
return SUCCESS;
}
/**
* Metodo que executa a accion de eliminar as imaxes
*
* @return String co resultado
* @throws java.lang.Exception
*/
@SkipValidation
public String eliminar() throws Exception {
UsuarioConstrudata usuario = (UsuarioConstrudata) this.getSession().get(FachadaSesion.USUARIO_SESION_VALIDADOR);
if (codigoFichaEmpresa > 0 && imagen.getCodigo() > 0) {
FachadaValidador.fichaEmpresaImagenEliminar(codigoFichaEmpresa,
imagen.getCodigo(),
usuario);
}
return SUCCESS;
}
/**
* Metodo que executa a accion de listar
*
* @return String co resultado
* @throws java.lang.Exception
*/
@SkipValidation
public String listado() throws Exception {
UsuarioConstrudata usuarioSesion = (UsuarioConstrudata) getSession().get(FachadaSesion.USUARIO_SESION_VALIDADOR);
FichaEmpresa fichaEmpresa = FachadaCliente.getFichaEmpresaCompleta(codigoFichaEmpresa, usuarioSesion);
imagenes = fichaEmpresa.getImagenes();
return SUCCESS;
}
/**
* Metodo que executa a accion de listar
*
* @return String co resultado
* @throws java.lang.Exception
*/
@SkipValidation
public String moverImagen() throws Exception {
if (imagen.getCodigo() > 0 && codigoFichaEmpresa > 0) {
FachadaCliente.modificarOrdenImagenFichaEmpresa(
codigoFichaEmpresa,
imagen.getCodigo(),
imagen.getOrden()
);
}
UsuarioConstrudata usuarioSesion = (UsuarioConstrudata) getSession().get(FachadaSesion.USUARIO_SESION_VALIDADOR);
FichaEmpresa fichaEmpresa = FachadaCliente.getFichaEmpresaCompleta(codigoFichaEmpresa, usuarioSesion);
imagenes = fichaEmpresa.getImagenes();
return SUCCESS;
}
/**
* Metodo que valida unha imaxe
*
* @return resultado String co resultado
* @throws Exception
*/
@SkipValidation
public String validarImagen() throws Exception {
if (imagen.getCodigo() > 0) {
UsuarioConstrudata usuario = (UsuarioConstrudata) this.getSession().get(FachadaSesion.USUARIO_SESION_VALIDADOR);
FachadaValidador.validarArchivoImagen(imagen.getCodigo(), usuario.getCodigo());
}
return SUCCESS;
}
/**
* Metodo que valida o formulario (Imaxe)
*/
@Override
public void validate() {
super.validate();
BufferedImage img = null;
if (descriptor != null) {
try {
img = ImageIO.read(descriptor);
} catch (IOException ex) {
}
if (img != null) {
if (img.getWidth() > MAX_ANCHO_IMAGEN) {
this.addFieldError("descriptor", "Ha superado el ancho permitido: " + MAX_ANCHO_IMAGEN);
} else if (img.getHeight() > MAX_ALTO_IMAGEN) {
this.addFieldError("descriptor", "Ha superado el alto permitido: " + MAX_ALTO_IMAGEN);
}
} else {
this.addFieldError("descriptor", "El archivo no es una imagen");
}
} else {
this.addFieldError("descriptor", "Selecciona un archivo");
}
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79227496/why-uploading-a-file-my-file-object-is-null-in-struts-2[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия