美文网首页Java
SSM项目中上传文件和图片

SSM项目中上传文件和图片

作者: Tomthy | 来源:发表于2018-05-17 20:52 被阅读8次

最近做文件上传费了些功夫,记录下使用方法。

1.依赖配置

        <!--文件上传start-->
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.6</version>
        </dependency>
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.3</version>
        </dependency>
        <!--文件上传end-->

2.在springmvc.xml文件中配置文件解析器,配置文件上传的限制。

    <!-- 文件上传 -->
    <bean id="multipartResolver"
          class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!-- 设置上传文件的最大尺寸为5MB -->
        <property name="maxUploadSize">
            <value>5242880</value>
        </property>
        <property name="defaultEncoding">
            <value>UTF-8</value>
        </property>
    </bean>

3.配置虚拟路径

实际项目中,不可能将上传的文件和图片保存在项目路径中,这样会导致项目崩溃。比较合理的做法是将上传的文件和图片存在本地的磁盘中,Tomcat中绑定一个虚拟路径。Tomcat下conf目录中的server.xml文件,在<Host> </Host>中添加<Context docBase="H:/data/file" path="/file"/>,这句话的意思是说存储在H:/data/file文件夹下的文件可以通过http://localhost:8080/file来访问。

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
        <Context docBase="H:/data/file" path="/file"/>
      </Host>

4.编写Controller

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.util.UUID;
/**
 * Created by Tomthy on 2018/5/17
 */
/**
 * 文件、图片上传
 */
@Controller
public class UploadFileController {
    private static final Logger logger = LoggerFactory.getLogger(TestController.class);
    //文件上传相关代码
    @RequestMapping(value = "upload")
    @ResponseBody
    public String upload(@RequestParam("file") MultipartFile fileUpload) throws IOException {
        // 下面是图片上传的代码
            // 得到图片的原始文件名
            String originalName = fileUpload.getOriginalFilename();
            // 指定带盘符的路径, 物理路径
            String realPath = "H://data//file//";
            /**
             * 为了处理出现重名现象, 将原始文件名去掉,
             * 通过UUID算法生成新的文件名
             */
            String uuidName = UUID.randomUUID().toString();
            // uuid名称加上文件的后缀名
            String newFile = uuidName + originalName.substring(originalName.lastIndexOf("."));
            // 创建File文件
            File file = new File(realPath + newFile);
            // 将图片写入到具体的位置
            fileUpload.transferTo(file);
            // 将文件名保存到数据库
//            items.setPic(newFile);
            return "http://localhost:8080/file/"+newFile;
    }
}

5.编写前台页面


以后补充


相关文章

  • SSM项目中上传文件和图片

    最近做文件上传费了些功夫,记录下使用方法。 1.依赖配置 2.在springmvc.xml文件中配置文件解析器,配...

  • Swift中文件和图片上传处理

    前言:基于Alamofire4.5网络框架开发的Swift项目中上传文件和图片代码参考。 上传文件 图片上传 OC...

  • 文件上传

    项目根目录下static文件夹中创建media文件夹 配置 功能:上传一张图片 功能:多个文件上传、

  • 上传图片及预览方法总结

    我们上传文件时可以直接使用 实现上传功能,然而在实际项目开发中可能需要其他的上传方式,比如先将图片上传到OSS中,...

  • AjaxFileUpload实现文件上传

    此例为maven项目,实现学生模块中简历的上传操作。所用框架为SSM框架。此处将下载文件、删除文件的方法统一展示,...

  • 2018-12-09

    SpringBoot项目中文件上传,配置文件上传图片存放的虚拟路径的问题: 问题:在springboot项目中,如...

  • element的上传

    项目需求: 上传各种文件,图片,office类型的文件 (图片具有预览功能) 本来office文件也需要预览功能,...

  • 常用图片文件下载上传方法

    上传文件 以图片为例,文件上传可以省略预览图片功能 图片上传可以使用2种方式:文件流和base64; 1.文件流上...

  • github项目中readme如何放图片

    github项目中readme中如何加入图片: 其实就是在本地文件夹中放入图片,将此文件夹上传至github上面,...

  • ssm 文件上传

    1.导入依赖 2.spring容器中注入 3.前端表单 4.controller方法一: 方法二:

网友评论

    本文标题:SSM项目中上传文件和图片

    本文链接:https://www.haomeiwen.com/subject/xgpidftx.html