springmvc之图片上传

1、接收到的是图片的流时

//上传头像
    @RequestMapping(value = "/uploadHeadSculpture", method = RequestMethod.POST)
    @ResponseBody
    public String uploadHeadSculpture(@RequestParam("photo") String file) {
        User user = (User) SecurityUtils.getSubject().getSession().getAttribute("curr_user");
        //获取文件格式
        String postfix = file.split("/")[1].split(";")[0];
        //获取图片的Base64码
        String str = file.split(",")[1];
        String url = "";
        BASE64Decoder decoder = new BASE64Decoder();
        try {
            // Base64解码
            byte[] bytes = decoder.decodeBuffer(str);
            for (int i = 0; i < bytes.length; ++i) {
                // 调整异常数据
                if (bytes[i] < 0) {
                    bytes[i] += 256;
                }
            }
            long title = Calendar.getInstance().getTimeInMillis();
            //获取系统路径并设定文件保存的目录
            String dir = ServiceConfigUtil.getValue("imgpath");//图片的上传路径,我这里是从工程的配置文件获取的
            String fileName = title + "." + postfix;
            // 生成jpeg图片
            FileUtils.writeByteArrayToFile(new File(dir, fileName), bytes);
            String lookUserPhoto = ServiceConfigUtil.getValue("lookUserPhoto");//图片的访问路径,我这里是从工程配置文件获取的,可以自己定义。如果你的图片保存在工程目录下,可以直接用dir+fileName
            url = lookUserPhoto + fileName;//保存到数据库的图片访问路径
            /××        ×保存url到数据库       ××/
        } catch (Exception e) {return "no";
        }return "yes";
    }

注:接收参数file值的一个基本格式

  "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAdiUlEQVR........."

2、接收到的是file文件直接上传

 @RequestMapping(value={"/saveOrUpdate"},method=RequestMethod.POST)
 public String saveOrUpdate(Person p, @RequestParam("photo") MultipartFile file, HttpServletRequest request) throws IOException{
     if(!file.isEmpty()){
        ServletContext sc = request.getSession().getServletContext();
         String dir = sc.getRealPath(“/upload”);    //设定文件保存的目录

        String filename = file.getOriginalFilename();    //得到上传时的文件名
        FileUtils.writeByteArrayToFile(new File(dir,filename), file.getBytes());

        p.setPhotoPath(“/upload/”+filename);    //设置图片所在路径

        System.out.println("upload over. "+ filename);
    }
    ps.saveOrUpdate(p);
    return "redirect:/person/list.action";   //重定向
}

参考:springmvc文件上传

时间: 2024-09-30 10:05:09

springmvc之图片上传的相关文章

在JSP中使用ckeditor以及使用SpringMVC实现图片上传

最近在做个人博客,对于这个项目而言,文本编辑器的选择相对的比较重要,在百度UEditor.MarkDown等之中最终还是选择了 CKEDITOR,对于CKeditor的介绍自不必多说, 网上对于如何配置的文章虽然很多,但大多是千篇一律或是不完整,错误百出,对于ckeditor编辑器的前台配置可以按照官网上一步一步来,这里主要想总结一下上传图片该如何操作. 一.我用的是4.47版本 CKEditor编辑器的工具栏中初始的时候应该是这样子的,没有图片上传按钮 第一步:打开ckeditor/plugi

springmvc图片上传、json

springmvc的图片上传 1.导入相应的pom依赖 <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.3</version> </dependency> 2.添加springmvc-servlet.xml里面的配置 <bean id=&q

百度UEditor图片上传、SpringMVC、Freemarker、Tomcat、Nginx、静态资源

个人官网.公司项目都需要 可视化编辑器,百度UEditor做得很不错,就用的这个.项目后台用到了SpringMVC.Freemarker,开发过程中部署在Jetty,线上部署用Tomcat,最后可能配置Nginx代理.     在实际使用过程中,遇到了太多的问题,因此有必要梳理和总结下. 1. 先说百度UEditor在Java环境中的使用:1.1   Html页面或者Freemarker模版里,引入百度UEditor的相关JS和CSS,如下 <script type="text/javas

springmvc上传图片并显示图片--支持多图片上传

实现上传图片功能在Springmvc中很好实现.现在我将会展现完整例子. 开始需要在pom.xml加入几个jar,分别是: [java] view plain copy <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dep

ueditor1.4.3 springmvc图片上传

ueditor:百度富文本编辑器,地址:ueditor.baidu.com 版本选择,之所以选择1.4.3,是因为ueditor 1.4.2才修复在bootstrap环境下图片拖拽异常,看到1.4.3也修复了不少的bug,没敢使用1.4.2,稍微看了下源码,1.4.3里面很多todo注释,ueditor一直在改进,不太成熟,既然这么多bug,为什么要选ueditor做富文本编辑?这个看项目组大神了,小喽啰没法做技术引入,如果有选择,不太建议用ueditor商用,bug比较多,当然使用简单也是个有

springmvc图片上传

//-------------------------------------上传图片--------------------------------------------------- @RequestMapping(value="upload2.action" ) public String upload2(HttpServletRequest request,HttpServletResponse response) throws IllegalStateException,

SpringMVC入门(二)—— 参数的传递、Controller方法返回值、json数据交互、异常处理、图片上传、拦截器

一.参数的传递 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Helvetica } 1.简单的参数传递 1 /* @RequestParam用法:入参名字与方法名参数名不一致时使用{ 2 * value:传入的参数名,required:是否必填,defaultValue:默认值 3 * } 4 */ 5 @RequestMapping("itemEdit") 6 public ModelAndView itemEdit(@R

SpringMVC+Spring+MyBatis 整合与图片上传简单示例

一.思路: (一) Dao层: 1. SqlMapConfig.xml,空文件即可.需要文件头.2. applicationContext_dao.xml. a) 数据库连接池b) SqlSessionFactory对象,需要spring和mybatis整合包下的.c) 配置mapper文件扫描器. (二)Service层: 1.applicationContext_service.xml包扫描器,扫描@service注解的类.2.applicationContext_trans.xml配置事务

SpringMVC框架五:图片上传与JSON交互

在正式图片上传之前,先处理一个细节问题: 每一次发布项目,Tomcat都会重新解压war包,之前上传过的图片会丢失 为了解决这个问题:可以不在Tomcat下保存图片,而是另找一个目录. 上传图片: <form method="post" enctype="multipart/form-data"> <input type="file" name="pictureFile"> </form>