欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SpringMvc MultipartFile实现图片文件上传示例

程序员文章站 2024-03-05 11:41:24
整理文档,搜刮出一个springmvc multipartfile实现图片文件上传示例,稍微整理精简一下做下分享。 spring-servlet.xml &...

整理文档,搜刮出一个springmvc multipartfile实现图片文件上传示例,稍微整理精简一下做下分享。

spring-servlet.xml

<!-- springmvc上传文件时,需要配置multipartresolver处理器 -->
  <bean id="multipartresolver"
    class="org.springframework.web.multipart.commons.commonsmultipartresolver">
    <property name="defaultencoding" value="utf-8" />
    <!-- 指定所上传文件的总大小,单位字节。注意maxuploadsize属性的限制不是针对单个文件,而是所有文件的容量之和 -->
    <property name="maxuploadsize" value="10240000" />
  </bean>

upload/index.jsp

<%@ page language="java" contenttype="text/html; charset=utf-8" pageencoding="utf-8"%>
<!doctype html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>单图片上传</title>
</head>
<body>
<fieldset>
<legend>图片上传</legend>
<h2>只能上传单张10m以下的 png、jpg、gif 格式的图片</h2>
<form action="/shop/auth/photoupload" method="post" enctype="multipart/form-data">
  选择文件:<input type="file" name="file">
  <input type="submit" value="上传"> 
</form>
</fieldset>
</body>
</html>

SpringMvc MultipartFile实现图片文件上传示例

或者使用extjs

js/user/photoupload.js

ext.onready(function(){
  ext.create('ext.form.panel', {
    title: '图片上传',
    width: 600,
    bodypadding: 10,
    frame: true,
    renderto: ext.getbody(),
    items: [{
      xtype: 'filefield',
      name: 'file',
      fieldlabel: 'photo',
      labelwidth: 50,
      msgtarget: 'side',
      fileupload: true ,
      allowblank: false,
      blanktext:"select an image",
      emptytext: 'you can only upload a single png 10m or less, jpg, gif format images',
      anchor: '100%',
      buttontext: '选择图片'
    }],

    buttons: [{
      text: '上传',
      handler: function() {
        var form = this.up('form').getform();
        if(form.isvalid()){
          form.submit({
            url: '/shop/auth/photoupload',
            waitmsg: '正在上传图片...',
            success: function(fp, o) {
              ext.msg.alert('提示', o.result.msg);
            }
          });
        }
      }
    }]
  });
});

pages/user/photoupload.html

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>图片上传</title>
</head>
<link href="../../ext-4.2.1.883/resources/css/ext-all.css" rel="external nofollow" rel="stylesheet"
  type="text/css" />
<script type="text/javascript" src="../../ext-4.2.1.883/ext-all.js"></script>
<script src="../../js/user/photoupload.js" type="text/javascript"></script>
<body>

</body>
</html>

SpringMvc MultipartFile实现图片文件上传示例

authcontroller.java

/**
   * 图片文件上传
   */
  @responsebody
  @requestmapping(value = "/photoupload",method = requestmethod.post)
  public resultdata<object> photoupload(multipartfile file,httpservletrequest request,httpservletresponse response,httpsession session) throws illegalstateexception, ioexception{
    resultdata<object> resultdata=new resultdata<>();
    // 判断用户是否登录
    /*user user=(user) session.getattribute("user");
    if (user==null) {
      resultdata.setcode(40029);
      resultdata.setmsg("用户未登录");
      return resultdata;
    }*/
    if (file!=null) {// 判断上传的文件是否为空
      string path=null;// 文件路径
      string type=null;// 文件类型
      string filename=file.getoriginalfilename();// 文件原名称
      system.out.println("上传的文件原名称:"+filename);
      // 判断文件类型
      type=filename.indexof(".")!=-1?filename.substring(filename.lastindexof(".")+1, filename.length()):null;
      if (type!=null) {// 判断文件类型是否为空
        if ("gif".equals(type.touppercase())||"png".equals(type.touppercase())||"jpg".equals(type.touppercase())) {
          // 项目在容器中实际发布运行的根路径
          string realpath=request.getsession().getservletcontext().getrealpath("/");
          // 自定义的文件名称
          string truefilename=string.valueof(system.currenttimemillis())+filename;
          // 设置存放图片文件的路径
          path=realpath+/*system.getproperty("file.separator")+*/truefilename;
          system.out.println("存放图片文件的路径:"+path);
          // 转存文件到指定的路径
          file.transferto(new file(path));
          system.out.println("文件成功上传到指定目录下");
        }else {
          system.out.println("不是我们想要的文件类型,请按要求重新上传");
          return null;
        }
      }else {
        system.out.println("文件类型为空");
        return null;
      }
    }else {
      system.out.println("没有找到相对应的文件");
      return null;
    }
    return resultdata;
  }

resultdata.java 代码如下:

public class resultdata<t> {
 private t data;
 private int code =200;
 private string msg;
 private boolean success = true;
 public boolean getsuccess() {

 return success;

 }
 public void setsuccess(boolean success) {

 this.success = success;

 }
 public t getdata() {

 return data;

 }
 public void setdata(t data) {

 this.data = data;

 }
 public int getcode() {

 

 return code;

 }
 public void setcode(int code) {

 if(200 != code){

  success = false;

 }

 this.code = code;

 }
 public string getmsg() {

 return msg;

 }
 public void setmsg(string msg) {

 this.msg = msg;

 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。