Cómo solicitar un servlet una vez y mostrar varias imágenes en el navegador
la clase pública FileUploadMultyServlet extiende HttpServlet {
privada estática final larga serialVersionUID = 1L;
ruta de carga de archivos privados;
ruta temporal de archivos privados;
@Override
public void init() lanza ServletException {
uploadPath = new File(getServletContext().getRealPath("upload")); p> p>
System.out.println("uploadPath=====" + uploadPath);
// Si el directorio no existe
if (! uploadPath.exists( )) {
// Crear directorio
uploadPath.mkdir();
}
// Directorio temporal
// File tempFile = new File(item.getName()) construye un objeto temporal
tempPath = new File(getServletContext().getRealPath("temp"));
if (!tempPath.exists()) {
tempPath.mkdir();
}
// Si no lo hace llame explícitamente al método de la clase principal, solo que no habrá una instancia de itemManager, por lo que se generará un puntero nulo
super.init();
}
public void doGet(solicitud HttpServletRequest, respuesta HttpServletResponse)
lanza ServletException, IOException {
doPost(solicitud, respuesta);
}
@SuppressWarnings("deprecation")
public void doPost(solicitud HttpServletRequest, respuesta HttpServletResponse)
lanza ServletException, IOException {
// Obtener datos de item_upload. jsp debido al formato de codificación de la página de carga. A diferencia del formato general, se usa enctype="multipart/form-data"
// El envío del formulario usa multipart/form-data y req.getParameter () no se puede utilizar para obtener los datos
// String itemNo = req.getParameter("itemNo");
// System.out.println("itemNo=== ===" + número de artículo);
/************************************ ** Utilice el componente FileUpload para analizar el formulario************ ********/
boolean isMultipart = ServletFileUpload.
isMultipartContent(solicitud);
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(4096);
factory.setRepository(tempPath); p>
p>
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setHeaderEncoding("utf-8");
// tamaño máximo antes de un Se lanzará FileUploadException
upload.setSizeMax(1000000 * 20);
pruebe {
List> items = upload.parseRequest(request); /p>
Cadena de datos = "";
int i = 0;
Cadena itemNo = "";
Cadena fileName = "";
Iterador iter = items.iterator();
mientras (iter.hasNext()) {
FileItem elemento = (FileItem) iter.next() ;
if (item.isFormField()) {
Nombre de cadena = item.getFieldName()
i++;
datos = item.getString( );
if ("itemNo".equals(item.getFieldName())) {
itemNo = item.getString();
} p>
}
// Si es el campo de entrada input="type"
else if (!item.isFormField()) { p>
/ / El nombre y la ruta completa del archivo cargado
fileName = item.getName();
System.out.println("filename===" +fileName);
long size = item.getSize();
// Determinar si el archivo está seleccionado
if ((fileName == null | | fileName.equals("")) && tamaño == 0) {
continue;
}else{
fileName = System.currentTimeMillis() + ".jpg";
}
//Interceptar cadena como: C:\WINDOWS\Debug\PASSWD.LOG
fileName = fileName.substring(
fileName. lastIndexOf("\\") + 1, fileName.length());
// Guarda el archivo en el disco físico del servidor: el primer parámetro es: completo ruta (excluyendo el nombre del archivo) Los dos parámetros son: nombre del archivo
// item.write(file);
// Modifique el nombre del archivo para que sea coherente con el nombre del material y modifique a la fuerza la extensión del archivo a gif
// item.write(new File(uploadPath, itemNo + ".gif"));
// Guarde el archivo en el directorio sin cambiar el nombre del archivo
item.write(new File(uploadPath, fileName));
}
}
response.sendRedirect(request.getContextPath() + "/people_require.html");
} catch (Excepción e) {
e.printStackTrace ();
}
}
}