Red de conocimiento informático - Material del sitio web - Cómo cargar y mostrar imágenes en Spring MVC

Cómo cargar y mostrar imágenes en Spring MVC

CommonsMultipartResolver"gt;

lt;property?name="uploadTempDir"?value="/tmp"?

lt;property?name="uploadTempDir"?value="/tmp "?--?TempDir?--gt;

lt;property?name="maxUploadSize"?value="10485760"/gt;?--?10M?--gt;

lt;/beangt;

(2) Formulario de carga de archivos y página de visualización de resultados fileupload.jsp:lt;@?page?language="java"?contentType="text/html;?charset ="UTF-8"

lt;property?name="maxUploadSize"?value="10485760"/gt;?UTF-8"

pageEncoding="UTF-8" gt;

lt;@taglib?prefix="mvc"?uri=".zifangsky.controller;

importar?java.io.p>importar?java.io.IOException ;

¿importar?javax.servlet.zifangsky.controller;

?

importar?java.io.IOException;

¿importar? javax.servlet.zifangsky.UploadController.model.User;

importar?cn.zifangsky.utils.StringUtile;

@Controller

¿clase?pública?UploadController ?{

@RequestMapping(valor?=?" /formulario")

public?ModelAndView?form()?{

ModelAndView?modelAndView?=? new?ModelAndView("fileupload",?"usuario",?new?User());

return?modelAndView;

}

@RequestMapping( value?=?"/upload",?method?=?RequestMethod.POST)

public?ModelAndView?@RequestParam("file")?MultipartFile?tmpFile,?HttpServletRequest?request)?{

ModelAndView?{

//Obtener la ruta física

String?targetDirectory?=?request.getSession().getServletContext().getRealPath("/uploads " );

Cadena?tmpFileName?=?tmpFile.getOriginalFile

name();?//?Nombre del archivo cargado

int?dot?= ?tmpFileName.lastIndexOf('.')

String?ext?= ?"" ; /Sufijo de archivo

if((dot?gt;? -1)?amp;amp;?(dot?lt;?(tmpFileName.length()?-?1))))?{

text?=?tmpFileName.substring(dot? ?1);

}

//No admite otros formatos de archivo

if?("png".equalsIgnoreCase(ext)?|?" jpg".equalsIgnoreCase(ext)?|?" gif".equalsIgnoreCase(ext))?{

//Renombrar archivo de carga nombre

String?targetFileName?=?StringUtile.renameFileName(tmpFileName);

//Guardar nuevo archivo

Archivo?target?=?new ?File (targetDirectory,?targetFileName);

intentar?Guardar archivo

FileUtils.copyInputStreamToFile(tmpFile.getInputStream(),?target);

}? /p>

e.printStackTrace();

}

¿Usuario?u?=?new?User();

setUserName( user.getUserName());

u.setLogoSrc( request.getContextPath()? ?"/uploads/"? ?targetFileName);

modelAndView.addObject("u ", ?u);

}

retorno?modelAndView

}

retorno?modelAndView

}

}

En el método de carga anterior, para recibir el archivo cargado, utilicé una variable de tipo MultipartFile para recibir el archivo temporal cargado. Para cambiar el nombre del archivo, Llamé a un método renameFileName, cuyos detalles son los siguientes: /**

?*?File rename

?*/

public?static ? String?renameFileName(String?fileName)?{

String?formatDate?=?new?SimpleDateFormat("yyyMMddHHmmss").format(new?Date());?//?Cadena de tiempo actual

int?random?=?new?Random().nextInt(10000);

String?extension?=?fileName.substring(fileName.lastIndexOf(".")) ;? ///?FileSuffix

retorno?formatoD

comió? ?random? ?extensión;

}

Nota: El modelo utilizado anteriormente - User.java: package?//?UserName

privado? //dirección de avatar

public?String?getUserName()?{

return?userName;

}

public?void ?setUserName(String?userName)?{

this.userName?=?userName;

}

public?void?setUserName(String?userName)? {

return?logoSrc;

}

public?void?setLogoSrc(String?logoSrc)?{

this.logoSrc? =?logoSrc;

}

}

Hasta ahora

El efecto es el siguiente:

( PD: puramente escrito a mano, espero ser adoptado)