(1)在spring mvc的配置文件中配置:
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">(2)文件上传表单和结果展示页fileupload.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"(3)后台处理UploadController.java:
package cn.zifangsky.controller;在上面的upload方法中,为了接收上传的文件,因此使用了一个MultipartFile类型的变量来接收上传的临时文件,同时为了给文件进行重命名,我调用了一个renameFileName方法,这个方法的具体内容如下:
/**注:上面用到的model——User.java:
package cn.zifangsky.model;至此全部结束
效果如下:
(PS:纯手打,望采纳)
可以使用组件上传JspSmartUpload.这是一个类.
<form name="f1" id="f1" action="/demo/servlet/UploadServlet" method="post" enctype="multipart/form-data">
<table border="0">
<tr>
<td>用户名:</td>
<td><input type="text" name="username" id="username"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="password" id="password"></td>
</tr>
<tr>
<td>相片:</td>
<td><input type="file" name="pic" id="pic"></td>
</tr>
<tr>
<td>相片:</td>
<td><input type="file" name="pic2" id="pic2"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit"></td>
</tr>
</table>
</form>
这里直接通过表单提交给servlet访问,spring中的话需要配置(一般就不用servlet了,自行配置).
以上在JSp页面中,以下是servlet/action中的代码,由于采用了spring框架,怎么做你知道的(没有servlet但是有action).
package com.demo.servlet;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
import java.util.UUID;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.jspsmart.upload.File;
import com.jspsmart.upload.Files;
import com.jspsmart.upload.Request;
import com.jspsmart.upload.SmartUpload;
public class UploadServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
SmartUpload su = new SmartUpload();
//初始化
su.initialize(this.getServletConfig(), request, response);
try {
//限制格式
//只允许哪几种格式
su.setAllowedFilesList("jpg,JPG,png,PNG,bmp,gif,GIF");
//不允许哪几种格式上传,不允许exe,bat及无扩展名的文件类型
//su.setDeniedFilesList("exe,bat,,");
//限制大小,每个上传的文件大小都不能大于100K
su.setMaxFileSize(100*1024);
//上传文件的总大小不能超过100K
//su.setTotalMaxFileSize(100*1024);
//上传
su.upload();
//唯一文件名
//得到文件集合
Files files = su.getFiles();
for(int i=0;i<files.getCount();i++)
{
//获得每一个上传文件
File file = files.getFile(i);
//判断客户是否选择了文件
if(file.isMissing())
{
continue;
}
//唯一名字
Random rand = new Random();
//String fileName = System.currentTimeMillis()+""+rand.nextInt(100000)+"."+file.getFileExt();
String fileName = UUID.randomUUID()+"."+file.getFileExt();
//以当前日期作为文件夹
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String dirPath = sdf.format(new Date());
//获得物理路径
String realDirPath= this.getServletContext().getRealPath(dirPath);
java.io.File dirFile = new java.io.File(realDirPath);
//判断是否存在
if(!dirFile.exists())
{
//创建文件夹
dirFile.mkdir();
}
//保存
file.saveAs("/"+dirPath+"/"+fileName);
//file.saveAs("/uploadFiles/"+fileName);
}
//原名保存
//su.save("/uploadFiles");
} catch (Exception e) {
System.out.println("格式错误");
}
//获得用户名
Request req = su.getRequest();
String username = req.getParameter("username");
System.out.println(username);
}
/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doGet(request, response);
}
}
特别注意导的包是JspSmartUpload中的还是java.io.*中的.
再次说明,这段代码是servlet中的,spring中的action可以剪切以上的一部分.请自行调整.
实现上传图片功能在Springmvc中很好实现。下面将会展现完整例子。
开始需要在pom.xml加入几个jar,分别是:
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
接下来,在Springmvc的配置加入上传文件的配置(PS:我把springmvc的完整配置都展现出来):
<!--默认的mvc注解映射的支持 -->
<mvc:annotation-driven/>
<!-- 处理对静态资源的请求 -->
<mvc:resources location="/static/" mapping="/static/**" />
<!-- 扫描注解 -->
<context:component-scan base-package="com.ztz.springmvc.controller"/>
<!-- 视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<!-- 前缀 -->
<property name="prefix" value="/WEB-INF/jsp/"/>
<!-- 后缀 -->
<property name="suffix" value=".jsp"/>
</bean>
<!-- 上传文件 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="utf-8"/>
<!-- 最大内存大小 -->
<property name="maxInMemorySize" value="10240"/>
<!-- 最大文件大小,-1为不限制大小 -->
<property name="maxUploadSize" value="-1"/>
</bean>
本回答被网友采纳如何在spring mvc中上传图片并显示出来
因此使用了一个MultipartFile类型的变量来接收上传的临时文件,同时为了给文件进行重命名,我调用了一个renameFileName方法,这个方法的具体内容如下:\/** * 文件重命名 *\/public static String renameFileName(String fileName) {String formatDate = new SimpleDateFormat("yyMMddHHmmss").format(new Date...
spring mvc word文件上传之后可预览的实现方法或者步骤
9 String dir = sc.getRealPath(“\/upload”); \/\/设定文件保存的目录 10 11 String filename = file.getOriginalFilename(); \/\/得到上传时的文件名 12 FileUtils.writeByteArrayToFile(new File(dir,filename), file.getBytes());13 14 p.setPhotoPath(“\/upload\/”+filename); \/\/设置图片...
springmvc实现文件的上传和下载
文件上传是项目开发中最常见的功能之一 ,springMVC 可以很好的支持文件上传,但是SpringMVC上下文中默认没有装配MultipartResolver,因此默认情况下其不能处理文件上传工作。如果想使用Spring的文件上传功能,则需要在上下文中配置MultipartResolver。前端表单要求:为了能上传文件,必须将表单的method设置为POST,并将...
实在不明白了,怎么才能在JSP之间显示出图片
1、img标记的src属性对应图片url,所有浏览器都支持。2、img标记src属性对应,data:application\/png,base64,【编码成base64的图片数据】,ie需要8以上支持。第三点、浏览器请求jsp或者通过spring mvc这样的框架间接请求jsp,那么jsp最终是转化成html的。好有了上面的基础:图片在你请求的单个jsp中显示,只...
Spring数据库图片显示到前端
Spring数据库图片显示到前端 可以通过流的方式读取照片,得到照片的文件输出流 通过springMvc中的response获取输出流 设置页面contentType格式为octec-stream方式,就像下载文件一样操作,还可以通过base64码显示到前端页面
java上传图片返回前端路径(java上传图片回显)
1.读取.log文件内容:使用Java的文件读取类(例如FileReader或BufferedReader)读取.log文件的内容。2.将文件内容转换为字符串:使用Java的字符串操作类(例如StringBuilder或StringBuffer)将文件内容转换为字符串。3.将字符串返回给前端:使用Java的Web框架(例如SpringMVC或Servlet)将字符串返回给前端。您...
后端传流文件图片给前端?
2在controller中可以使用File类来获取指定路径下的图片信息,然后将图片信息打包成一个字节数组并返回给前端;3可以使用SpringMVC中的ResponseEntity类来进行文件下载,将图片信息转换成流并返回给前端,前端可以通过src属性将其显示出来。pythonflask将读取的图片返回给web前端最近在做毕业设计系统可视化的时候,...
求SpringMVC大文件上传详解及实例代码
SpringMVC的文件上传非常简便,首先导入文件上传依赖的jar:<!-- 文件上传所依赖的jar包 --> <dependency> <groupId>commons-fileupload<\/groupId> <artifactId>commons-fileupload<\/artifactId> <version>1.3.1<\/version> <\/dependency> 在springMVC-servlet.xml配置文件中配置文件解析器:<!--1*...
springmvc文件上传路径设置
springmvc文件上传路径设置:1、导入文件上传的坐标。2、在spring-mvc.xml配置文件中配置文件解析器对象,property可以配置上传文件的大小等属性。注意:id一定要是multipartResolver。3、前端页面的form表单,method是post方法,加上enctype="multipart\/form-data"这个属性。4、后端方法的参数类型为MultipartFile...
springMVC文件上传,判断是否有文件上传,解
public void upload(@RequestParam MultipartFile file){ String fileName=file.getOriginalFilename(); if(fileName==null||fileName.equals("")){ \/\/没有文件上传 }else{ \/\/有文件上传 } \/\/...}不过我感觉我的方法不太好,如果有更好的方法,记得叫我 ...