`
kisslongge
  • 浏览: 5106 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

SpringMVC图片上传

阅读更多

jsp前台代码:

<form id="formid" action="uploadpictrue.do"enctype="multipart/form-data" method="post">
    <input id="file-0b"  type="file" name="file"/>
    <input type="submit" value="上传" name="submit">
</form

controller中的代码:

public class UploadpictureContrnller {

    /**
     * 字节流上传图片
     * @param request
     * @param response
     */
   
    @RequestMapping(value="uploadpictrue.do",method=RequestMethod.POST)
    @ResponseBody
    public void uploadpictrue(HttpServletRequest request,HttpServletResponse response) {
         
        MultipartHttpServletRequest multipart = (MultipartHttpServletRequest) request;
       
        MultipartFile file = multipart.getFile("file");
//        // 获得文件名:  
//        //获得保存路径
        String path = request.getSession().getServletContext().getRealPath("down\\uploadpictrue");
        SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
        Date day = new Date();
        String folder = fmt.format(day);
        String savepath = path+"\\"+folder;
        File savefile = new File(savepath);
        //判断文件夹是否存在不存在则创建
        if(!savefile.exists()&& !savefile.isDirectory()){
            savefile.mkdir();
        }
        String filename = file.getOriginalFilename();
        //获得出流
        FileOutputStream fos = null;
        ServletInputStream inps = null;
        //保存文件
        try {
            fos = new FileOutputStream(savepath+"\\"+filename);
            inps = multipart.getInputStream();
            byte[] b = new byte[1024];
            int i =0;
            inps.readLine(b, 0, b.length);
            while((i=inps.readLine(b, 0, b.length))!=-1){
                fos.write(b, 0, i);
                fos.flush();
            }
            String[] suffixs = filename.split("[.]");
            String suffix = suffixs[suffixs.length-1];
            UUID uuid = UUID.randomUUID();
            String uu = uuid.toString().replace("-","");
            String newname = uu+"."+suffix;
           
            if(fos!=null){
                fos.close();
            }
            File f = new File(savepath+"\\"+filename);
            if(f.exists()&&f.isFile()){
                File f2 =new File(savepath+"\\"+newname);
            boolean falg = f.renameTo(f2);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally{
            if(inps!=null){
                try {
                    inps.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
       
    }
    /**
     * 字符流上传图片
     * @param request
     * @param response
     */
    @RequestMapping(value="uploadpictrue.do",method=RequestMethod.POST)
    @ResponseBody
    public void uploadpictrue2(HttpServletRequest request,HttpServletResponse response) {
         
        MultipartHttpServletRequest multipart = (MultipartHttpServletRequest) request;
       
        MultipartFile file = multipart.getFile("file");
//        // 获得文件名:  
//        //获得保存路径
        String path = request.getSession().getServletContext().getRealPath("down\\uploadpictrue");
        SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
        Date day = new Date();
        String folder = fmt.format(day);
        String savepath = path+"\\"+folder;
        File savefile = new File(savepath);
        //判断文件夹是否存在不存在则创建
        if(!savefile.exists()&& !savefile.isDirectory()){
            savefile.mkdir();
        }
        String filename = file.getOriginalFilename();
        //获得出流
        BufferedReader bu =null;
        OutputStream os = null;
        PrintWriter pw;
        //保存文件
        try {
            bu = new BufferedReader(new InputStreamReader(multipart.getInputStream()));
            os = new FileOutputStream(savepath+"\\"+filename);
            pw = new PrintWriter(os);
            String str ="";
            while((str=bu.readLine())!=null){
                pw.write(str);
                pw.flush();
            }
            String[] suffixs = filename.split("[.]");
            String suffix = suffixs[suffixs.length-1];
            UUID uuid = UUID.randomUUID();
            String uu = uuid.toString().replace("-","");
            String newname = uu+"."+suffix;
           
            if(os!=null){
                os.close();
                os=null;
            }if(pw!=null){
                pw.close();
                pw=null;
            }
            File f = new File(savepath+"\\"+filename);
            if(f.exists()&&f.isFile()){
                File f2 =new File(savepath+"\\"+newname);
            boolean falg = f.renameTo(f2);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally{
            if(bu!=null){
                try {
                    bu.close();
                    bu=null;
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
       
    }
}

 

Spring-mvc.xml中配置:

<!--MultipartResolver 文件上传 -->
    <!-- 文件上传通用的多部分解析器 -->
    <bean id="multipartResolver"
        class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding" value="utf-8"></property>
        <property name="maxUploadSize" value="10485760000"></property>
        <property name="maxInMemorySize" value="40960"></property>
    </bean>

分享到:
评论

相关推荐

    springMVC图片上传示例

    在这个"springMVC图片上传示例"项目中,我们将深入探讨如何在SpringMVC环境中实现图片附件的上传功能,包括多图上传、图片预览及文本域传值。 一、SpringMVC概述 SpringMVC是Spring框架的一部分,它遵循模型-视图-...

    java-springmvc图片上传

    在这个项目"java-springmvc图片上传"中,我们关注的核心是Spring MVC如何处理图片的上传功能。下面将详细解释这个过程涉及的关键知识点。 1. **Spring MVC基础**: - **DispatcherServlet**:Spring MVC的入口点,...

    SpringMVC文件上传Demo代码

    在SpringMVC中实现文件上传是一项常见的任务,它允许用户通过表单将本地文件发送到服务器进行存储或处理。这个"SpringMVC文件上传Demo代码"是一个实例,演示了如何配置和使用SpringMVC来实现这一功能。 首先,我们...

    springmvc上传文件controller,vue

    在Spring MVC框架中,文件上传是一项常见的功能,用于接收客户端发送的文件数据。Vue.js作为一个前端框架,可以很好地与Spring MVC结合,实现用户界面的交互和文件上传的处理。在这个项目中,我们将深入探讨如何使用...

    SpringMvc上传本地图片保存数据库并实时显示

    以上就是使用Spring MVC实现本地图片上传、存储到数据库并实时显示的关键步骤和知识点。这涉及到前端交互、后端处理、文件操作、数据库存储和视图渲染等多个层面,每个环节都需要细心处理以确保功能的正常运行和系统...

    springmvc图片上传带进度条实例

    在本文中,我们将深入探讨如何使用Spring MVC框架创建一个图片上传功能,并且集成进度条来实时展示上传进度。Spring MVC是Spring框架的一部分,它提供了一种模型-视图-控制器(MVC)架构,用于构建Web应用程序。在这...

    基于Springmvc的上传图片并生成缩略图

    在本文中,我们将深入探讨如何基于Springmvc实现图片上传及生成缩略图的功能。Springmvc是Spring框架的一个重要模块,用于构建MVC模式的Web应用,它提供了强大的数据绑定、模型映射、视图渲染等功能,是Java开发中的...

    springMVC图片上传的处理方式详解

    SpringMVC图片上传处理方式详解 SpringMVC图片上传处理方式详解是一种常见的Web开发技术,旨在帮助开发者快速实现图片上传功能。本文将详细介绍SpringMVC图片上传处理方式的实现步骤和相关技术要点。 依赖的jar包 ...

    用spring,springmvc,mybatis实现图片的上传和回显

    以上就是使用Spring、SpringMVC和MyBatis实现图片上传和回显的基本流程。需要注意的是,实际项目中还需要考虑文件名冲突、文件大小限制、异常处理、安全性(如防止XSS攻击)等问题。同时,对于大型项目,可能需要...

    springMVC多图片上传示例

    在本文中,我们将深入探讨如何使用Spring MVC框架实现多图片上传功能,并结合描述中的关键点进行详细解析。Spring MVC是Spring框架的一部分,专门用于构建Web应用程序,提供了模型-视图-控制器(MVC)架构模式的支持...

    SpringMVC+Ajax异步上传图片并显示(源码)

    总的来说,SpringMVC结合Ajax提供了一种强大的方式来实现异步图片上传功能,它可以大大提高Web应用的交互性和用户体验。在压缩包`spring_ajax_photo`中,可能包含了实现这一功能的完整源代码,包括前端HTML、CSS、...

    SSM(Spring+SpringMvc+Mybatis)图片上传保存到数据库与回显+sql

    在这个项目中,我们主要关注的是如何在SSM框架下实现图片上传并将其信息存储到数据库,以及如何将已存储的图片信息回显出来。 首先,`Spring`作为核心容器,负责管理应用中的所有Bean,提供依赖注入(Dependency ...

    基于maven+springmvc+Ueditor,自定义上传图片路径,稳得不行

    单图片上传到本地,编辑框回显, 多图片上传 回显。springmvc整合完成项目 详情 https://blog.csdn.net/m0_37946870/article/details/79913803

    springmvc图片上传及json数据转换过程详解

    本知识点将详细解释Spring MVC中图片上传以及JSON数据转换的过程,包括相关的配置、前端表单设计和后端控制器实现。 首先,图片上传功能的实现需要在项目中引入commons-fileupload依赖,以便处理文件上传。在Spring...

    springmvc文件上传练习项目

    本项目"springmvc文件上传练习项目"旨在提供一个实践平台,帮助开发者掌握如何使用Spring MVC处理Multipart类型的请求,实现文件和图片的上传。下面我们将深入探讨相关知识点。 1. **MultipartHttpServletRequest...

    springMVC测试上传文件并在页面上显示

    总结来说,实现"springMVC测试上传文件并在页面上显示"的功能,需要处理前端的文件选择与提交,后端的文件接收、存储和解析,以及前端的数据展示。涉及的技术包括HTML5表单、Spring MVC的`@RequestParam`、`...

    bootstrap+springMvc+spring实现图片上传下载

    总结起来,"bootstrap+springMvc+spring实现图片上传下载"的项目结合了前端的Bootstrap框架提供美观的用户界面,Spring MVC处理HTTP请求和业务逻辑,而Spring框架则作为整体应用的基石,提供数据管理和服务支持。...

    SpringMVC批量上传

    java 基于springMVC多图片上传,MySQL源码 @Controller @RequestMapping("/upload") public class UploadFileController { @Autowired private UploadFileService uploadFileService; @RequestMapping("/...

    SpringMVC上传图片文件到 阿里云【2018年最新版】【JavaWeb】

    在本教程中,我们将深入探讨如何使用SpringMVC框架与阿里云对象存储服务(OSS)集成,实现在JavaWeb应用中上传图片文件。阿里云OSS是一种安全、可靠的云存储服务,适合存储大量数据,如图片、视频、文档等。而...

Global site tag (gtag.js) - Google Analytics