Spring mvc上传图片到本地服务器

该博客介绍了如何使用Spring MVC在Tomcat服务器上配置虚拟目录,用于图片上传。内容包括Spring MVC的基础配置,需要的jar包,jsp/html页面设计,Controller和Service的代码实现。Service代码中展示了如何处理MultipartFile类型的文件上传,并存储到本地。由于前端使用EasyUI,所以请求和返回数据主要为JSON格式。
摘要由CSDN通过智能技术生成

首先配置在tomcat配置一个虚拟目录,作为上传图片的服务器

这里是配置

spring mvc的基本配置

在spring mvc.xml文件中添加如下配置    方便spring  容器参数绑定

加入需要的jar包

文件上传的jar包

jsp页面或者html页面

表单的name要和controller形参要一致

cotroller

//图片上传controller
@Controller
public class UpLoadPicController {
@Resource(name=”upLoadPicService”)
private UpLoadPicService upLoadService;

@RequestMapping("/pic/upload")
@ResponseBody
public String upLoadPic(MultipartFile uploadFile){
    //火狐浏览器不完全兼容kinderEditor
    Map result=upLoadService.picUpLoad(uploadFile);
    String resultJson=JsonUtils.objectToJson(result);
    return resultJson;
}

}

Service代码实现

package com.taotao.service.impl;

import java.io.File;
import java.io.FileOutputStream;
import java.util.HashMap;
import java.util.Map;

import org.joda.time.DateTime;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import com.taotao.service.UpLoadPicService;
import com.taotao.util.IDUtils;

@Service(“upLoadPicService”)
public class UpLoadPicServiceImpl implements UpLoadPicService{

@Override
public Map picUpLoad(MultipartFile multipartFile) {
    Map resultMap=new HashMap();//图片上传后的返回值  不用定义pojo了
    //图片名称
    String oldName=multipartFile.getOriginalFilename();
    String newName=IDUtils.getImageName();
    newName=newName+oldName.substring(oldName.lastIndexOf("."));
    //保存图片的地址
    String datePath=new DateTime().toString("\\yyyy\\MM\\dd");  // Joda jar利用日期格式在分类 \2016\6\2
    String urldatepath=new DateTime().toString("/yyyy/MM/dd"); 
    String saveFilePath="K:\\develop\\upload\\picture"+datePath; //本地物理路径
    /* 构建文件目录 */
    File fileDir = new File(saveFilePath);
    if (!fileDir.exists()) {
        fileDir.mkdirs();
    }
    try {
        FileOutputStream out = new FileOutputStream(saveFilePath + "\\"
                + newName);     //从本地文件
        // 写入文件
        out.write(multipartFile.getBytes());
        out.flush();
        out.close();
        resultMap.put("error",0);
        resultMap.put("url", "http://localhost:8080/pic"+urldatepath+"/"+newName);
        return resultMap;

    } catch (Exception e) {
        resultMap.put("error",1);
        resultMap.put("message", "文件上传错误");
        return resultMap;
    }

}

}

说明

因为前台页面是easyUI编写,都是些ajax请求,页面组装的数据也多为json数据格式 大家可以忽略

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值