精华内容
下载资源
问答
  • JSP实训六student(JSP实现图片上传和读取显示).doc
  • 上传图片时即时显示图片效果,这在项目开发中时很常见的一项功能,接下来介绍此功能的实现过程,有需要的朋友可以参考下
  • jspsmartupload实现上传图片显示缩略图,放在tomcat工程目录下访问即可,绝对好用!
  • jsp实现图片上传功能

    2011-08-19 12:07:31
    对于jsp上传图片问题,研究了一段时间,也差了好多资料,最近终于搞定一个,供大家下载测试。
  • 毕竟只是一个新手,解决这种复杂点的问题(相对而言),还是需要花费大量时间的,这篇文章花了两天的时间才实现的功能,现在就记录一下使用springboot怎么实现文件上传下载的。 我这里使用的是 springboot 2.0.3,...

    我先看一下《颈椎病康复指南》再给大家说怎么实现的这两个功能,毕竟只是一个新手,解决这种复杂点的问题(相对而言),还是需要花费大量时间的,这篇文章花了两天的时间才实现的功能,现在就记录一下使用springboot怎么实现文件上传下载的。

    我这里使用的是 springboot 2.0.3,不需要导入相关jar包,2.x 的版本已经整合进去了,直接使用即可。

    spring官网提供了 springboot 的文件上传下载案例,这是网址:https://spring.io/guides/gs/uploading-files/,使用的是流的输出,对于我这个新手来说,直接不理解,所以略过,通过网上查阅大量资料,终于把问题解决了。下面的案例是 springboot2.x 图片上传与回显。我使用的工具是idea。

    1、创建idea默认的springboot项目,我的版本是2.0.3

    2、创建一个控制层FileController

    package com.rainy.controller;
    
    import org.apache.catalina.servlet4preview.http.HttpServletRequest;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.multipart.MultipartFile;
    
    import java.io.*;
    import java.util.UUID;
    
    /**
     * 文件上传
     */
    @Controller
    public class FileController {
    
        @GetMapping(value = "/file")
        public String file() {
            return "file";
        }
    
        @PostMapping(value = "/fileUpload")
        public String fileUpload(@RequestParam(value = "file") MultipartFile file, Model model, HttpServletRequest request) {
            if (file.isEmpty()) {
                System.out.println("文件为空空");
            }
            String fileName = file.getOriginalFilename();  // 文件名
            String suffixName = fileName.substring(fileName.lastIndexOf("."));  // 后缀名
            String filePath = "D://temp-rainy//"; // 上传后的路径
            fileName = UUID.randomUUID() + suffixName; // 新文件名
            File dest = new File(filePath + fileName);
            if (!dest.getParentFile().exists()) {
                dest.getParentFile().mkdirs();
            }
            try {
                file.transferTo(dest);
            } catch (IOException e) {
                e.printStackTrace();
            }
            String filename = "/temp-rainy/" + fileName;
            model.addAttribute("filename", filename);
            return "file";
        }
    }
    

    3、创建MyWebMvcConfigurer,这里是配置资源映射路径,详细点的介绍看这篇文章:https://blog.csdn.net/qq_38762237/article/details/81283241

    /**
     * 资源映射路径
     */
    @Configuration
    public class MyWebAppConfigurer implements WebMvcConfigurer {
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/temp-rainy/**").addResourceLocations("file:D:/temp-rainy/");
        }
    }
    

    4、jsp页面

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
        <form action="/fileUpload" method="post" enctype="multipart/form-data">
            <label>上传图片</label>
            <input type="file" name="file"/>
            <input type="submit" value="上传"/>
        </form>
        <p>图片:</p>
        <img src="${filename }"/>
    </body>
    </html>
    
    

    注意一点:我是使用jsp引擎来渲染,因为我不会用 Thymeleaf,添加jsp页面,springboot使用jsp页面是需要进行配置jsp整合的,默认的是 Thymeleaf 的页面,简单的就是HTML页面

    springboot配置jsp页面的方法:https://blog.csdn.net/qq_38762237/article/details/81283352

    这里写图片描述

    推荐项目

    微信公众号

    每天Get一个小技巧

    展开全文
  • 使用jsp+tag编程,实现上传显示图片功能。
  • JSP实现图片上传并保存到数据库

    千次阅读 2020-09-29 07:36:26
    JSP实现图片上传并保存到数据库 开发工具与关键技术:Eclipse java 作者:木林森 撰写时间:2020年9 月 28 日 今天分享一个jsp页面图片上传的案例。 首先准备文件上传的依赖包:commons-fileupload-1.3.2.jar包...

    JSP实现图片上传并保存到数据库
    开发工具与关键技术:Eclipse java
    作者:木林森
    撰写时间:2020年9 月 28 日
    今天分享一个jsp页面图片上传的案例。
    首先准备文件上传的依赖包:commons-fileupload-1.3.2.jar包和commons-io-2.5.jar包,然后将包放在/项目名称/WebContent/WEB-INF/lib文件夹中。
    接着在jsp页面添加form表单,表单用post提交,注意enctype属性值还要设置为enctype=“multipart/form-data”,在上传单个文件的时候,应该使用单个带有属性type=“file” 的 <input …/> 标签。有些时候为了允许多个文件上传,就会用多个name属性值不同的input标签来实现,输入标签具有不同的名称属性的值,浏览器会为每个input标签关联一个‘浏览’按钮。
    我的jsp页面设置代码如下图:
    在这里插入图片描述

    显示样式如下:
    在这里插入图片描述

    Dao类:public boolean insert(T t);
    DaoImpl类:sql语句:private String insert=“insert into users(user_name,password,user_type_id,sex,age,id_number,picture) values (?,?,?,?,?,?,?);”;
    在这里插入图片描述

    前面的代码比较简单一点,重点的代码是在Servlet里面,它比较麻烦的是对图片处理。
    图片处理:首先是获取jsp页面的file文件,然后是构建上传路径,添加路径分隔符,判断是否已经存在或是否是文件类型,是就对文件输入流进行处理和读取然后返回文件类型关闭流,代码如下:
    在这里插入图片描述

    保存的时候最好判断请求头中是否含有enctype=“multipart/form-data”,没有直接提示,有的话就设置内存临界值,单个文件最大大小和请求最大值:
    int sizeThreshold=102410245;//设置内存临界值 5M
    int fileSizeMax=102410245; //设置单个文件的最大大小
    int sizeMax=1024102411;//设置请求的最大大小
    DiskFileItemFactory factory=new DiskFileItemFactory();
    当文件超过设置的值时就写入到临时文件夹,否则就保存在内存
    factory.setSizeThreshold(sizeThreshold);
    设置DiskFileItemFactory的临时文件夹。java.io.tmpdir 代表系统temp目录
    factory.setRepository(new File(System.getProperty(“java.io.tmpdir”)));
    ServletFileUpload upload=new ServletFileUpload(factory);
    upload.setHeaderEncoding(“utf-8”);//设置编码
    upload.setFileSizeMax(fileSizeMax);//设置单个文件的最大大小
    upload.setSizeMax(sizeMax);//设置请求的最大大小
    String uploadPath=“H:\Java2020MyPicture\upload”;//构建上传目录的路径
    然后判断路径是否存在,不存在就创建。然后判断上传的是否是文件,如果是非文件就如下图处理:
    在这里插入图片描述

    如果是文件:
    在这里插入图片描述

    实现样式如下:
    在这里插入图片描述

    展开全文
  • 主要介绍了JSP图片上传显示方法,以实例形式较为详细的分析了数据库的创建、图片存储、图片文件的传输及页面显示等相关实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • jsp实现图片上传和下载

    千次阅读 2017-07-19 11:47:38
    图片上传 1.添加使用jar包, jspSmartUpload.jar,并导包; 2.创建jsp页面,注意必须是“post”方式提交,form标签中一定要添加enctype=”multipart/form-data” ()%>/UpServlet" method="post" enctype="m

    将图片上传
    1.添加使用jar包, jspSmartUpload.jar,并导包;
    2.创建jsp页面,注意必须是“post”方式提交,form标签中一定要添加enctype=”multipart/form-data”

    <body>
        <form action="<%=request.getContextPath()%>/UpServlet" method="post" enctype="multipart/form-data">
            <p><input type="file" name="file1"></p>
            <p><input type="file" name="file2"></p>
            <p><input type="file" name="file3"></p>
            <p><input type="file" name="file4"></p>
            <p><input type="submit" value="上传"></p>
        </form>
    </body>

    3.添加servlet

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            //1)创建SmartUpload对象,
            SmartUpload su=new SmartUpload();
            //以及初始化initialize(getServletConfig(), request, response);
            su.initialize(getServletConfig(), request, response);
            //2)设置上传限制(文件的大小,类型)
            su.setMaxFileSize(1024*1024*9);
            su.setAllowedFilesList("jpg,png,gif");
            //3)调用SmartUpload对象的 upload()
            try {
                su.upload();
            } catch (SmartUploadException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            //4)设置上传路径
            String path=this.getServletContext().getRealPath("images");
            File file=new File(path);
            if(!file.exists()) {
                file.mkdir();//创建文件夹
            }
            //5)读取上传文件的个数,开始单个文件的主传 
            int count=su.getFiles().getCount();
            List<String> urls=new ArrayList<>();
            for (int i = 0; i < count; i++) {
                /*5.1)读取本次上传的文件
                5.2)判断文件的大小,如果为0则越过
                5.3)改文件名
                5.4)调用文件对象的 saveAs()方法
                5.5)数据库处理*/
            com.jspsmart.upload.File file1=su.getFiles().getFile(i);
                if(file1.getSize()==0) {
                    continue;
                }
            String filename=file1.getFileName();
            try {
                file1.saveAs(path+"/"+filename);
                urls.add("images/"+filename);//要添加相对路径
            } catch (SmartUploadException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            }
            request.setAttribute("urls", urls);
            request.getRequestDispatcher("success.jsp").forward(request, response);
            //6)修改跳转路径 结束
    
            //7)处理异常,完成跳转
        }

    跳转至success.jsp中显示

    <body>
        <c:forEach items="${urls }" var="url">
            <img alt="" src="${url }"><br>
        </c:forEach>
    </body>

    关于下载
    在WebContent中建个文件夹,里面存放要下载的内容
    这里写图片描述
    jsp页面

    <body>
        <a href="<%=request.getContextPath()%>/DownServlet">下载</a>
    </body>

    servlet

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            /*创建SmartUpload对象,初始化
            获得文件路径
                su.setContentDisposition(null);
            调用下载方法downloadFile(下载的文件的路径);*/
            SmartUpload su=new SmartUpload();
            su.initialize(getServletConfig(), request, response);
            String path=this.getServletContext().getRealPath("down/[Java参考文档]JDK_API_1_6_zh_CN.CHM");
            su.setContentDisposition(null);//禁止在浏览器中打开
            try {
                su.downloadFile(path);
            } catch (SmartUploadException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    展开全文
  • #ssm+jsp实现图片上传,以及解决一些常见问题 平常商业项目中不免要做文件上传,像用户发送的图片,头像的上传等,本文就以头像的上传更新来讲述一下 话不多说,直接开干 一、前端 jsp: &amp;amp;lt;span ...

    #ssm+jsp实现图片上传,以及解决一些常见问题
    平常商业项目中不免要做文件上传,像用户发送的图片,头像的上传等,本文就以头像的上传更新来讲述一下
    话不多说,直接开干
    一、前端
    jsp:

            <span class="charactor" id="userHeader">
            <input id="updateHeader" type="file" style="display: none"  />
                <img src="" alt="" id="userHead" class="img" onclick="updateHeader()">
            </span>
    

    jsp中 input标签当type="file"的时候,浏览器会把文件的内容连同form的所有字段格式化后传递到服务器,display:none能将浏览等字样隐藏,从而实现通过点击头像实现选择文件
    css:

    .img{
        width: 120px;
        height: 100px;
    }
    .charactor{
        font-family: Algerian;
        font-size: 20px;
        font-style: normal;
    }
    

    js:

    function updateHeader() {
            $("#updateHeader").click();
            var formData = new FormData();
            var header_file = $("#updateHeader").get(0).files[0]
            var phone = "1234"
            formData.append("headerFile", header_file)
            formData.append("userPhone", phone)
            alert("xxx")
            $.ajax({
                url: "/updateUser/updateHeader.html",
                type: "POST",
                dataType: "json",
                processData: false,
                contentType: false,
                data: formData,
                success: function (data) {
                    // var header = eval(data)
                    // alert(header)
                    $("#userHead").attr("src", data)
                },
                error: function () {
                    alert("error")
                }
    
            })
        }
    

    formData对象能以key-value保存数据,在ajax的data中直接代替之前的单一传值,将formData传上去就行了,这里需要注意的是,服务器可能会出现TypeError: ‘append’ called on an object that does not implement interface FormData.的错误,是因为没有加上processData:false和contentType:false这两个option
    这里有必要解释一下这个为什么processData要为false呢
    processData 默认 true 用于对data参数进行序列化处理
    大家都知道,data里面是传入的json形式的字符串,而不能转换Dom树的格式,所以一定将processData设置为false!
    contentType 设置为 false 是为了避免 JQuery 对其操作,失去分界符,致使服务器不能正常解析文件。

    二 后台
    本文采用的ssm注解形式,后台接收图片常用的有两种形式,第一种是将图片转成二进制流进行保存图片,这里不详讲,有兴趣的朋友可以去查查。第二种呢是通过
    1.springMVC配置

        <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
            <property name="maxUploadSize" value="104857600" />
            <property name="maxInMemorySize" value="4096" />
            <property name="defaultEncoding" value="UTF-8"></property>
        </bean>
    

    对文件进行配置,为文件限定大小并将字符编码转成utf-8或其他格式
    2.controller

     @RequestMapping("updateHeader.html")
        public void updateHeader(HttpServletRequest request,HttpServletResponse response,
                                 @RequestParam(value = "headerFile")MultipartFile header
                                ,@RequestParam(value = "userPhone") String phone){
            //对头像文件进行重命名
            String headerName = UUID.randomUUID().toString().replaceAll("-","");
            //获取文件的后缀
            String ext = FilenameUtils.getExtension(header.getOriginalFilename());
            //获取地址加后边的静态资源文件夹的地址
            String url = request.getSession().getServletContext().getRealPath("/static/imgs/head");
            System.out.println(url);
            //得到整个文件的url 
            String urlAll = url + "/" + headerName + "." + ext;
            try {
                //将header这个文件存放到urlAll的路径当中
                header.transferTo(new File(urlAll));
            } catch (IOException e) {
                e.printStackTrace();
            }
            //获取整体服务器中文件地址
            String url2 = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath()+"/static/imgs/head"+ "/" + headerName + "." + ext;
            //将文件的路径存入数据库中
            registIm.updateHeader(url2,phone);
            response.setHeader("Content-type","text/html;charset=UTF-8");
            response.setCharacterEncoding("UTF-8");
            //通过google的gson将url解析成json格式传给前台,图片将通过地址来进行显示
            Gson gson = new Gson();
            String json = gson.toJson(url2);
            try {
                response.getWriter().write(json);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    这里呢代码有些臃肿,提供大体思路,先将文件重命名以防同名图片造成不便,然后将图片存入项目路径,然后将图片的路径存入数据库,然后返回给前端,前端拿到地址后可直接显示图片。
    

    像dao层,service层,和mapper.xml等文件就不一 一讲述了,
    欢迎各位大佬指教,相互学习,原创转载请说明出处,谢谢~

    展开全文
  • jsp实现图片上传到数据库中

    千次阅读 2020-04-30 22:29:56
    *首先我觉得这个方法走了弯路,因为我不是直接将本地的图片上传到数据库,而是现将本地的图片写入到一个固定的文件夹中,然后再将该文件夹中的图片上传到数据库中。 简单来说就是:我无法得到图片的原目录,只能得到...
  • jsp实现图片上传功能!

    千次阅读 2014-01-20 20:45:48
    产品的图片:<html:file property="file" /><p/> 添加" /> 2:显示 ${query.list}" var="product"> ${product.productname} <td><img src="${product.imagespath}" /> ...
  • jsp图片上传和显示

    千次阅读 2011-12-01 13:38:27
    数据库应用程序,特别是基于WEB的数据库应用程序,常会涉及到图片信息的存储和显示。通常我们使用的方法是将所要显示图片存在特定的目录下,在数据库中保存相应的图片的名称,在JSP中建立相应的数据源,利用数据库...
  • 图片上传是指客户端通过Web应用程序将本地图片资源传输到服务器上。在客户端需要显示图片时,服务器端将图片通过网络以流的形式发送给...掌握图片上传和读取的原理,可以帮助大家了解更多关于文件在网络中传输的知识。
  • jsp 上传图片显示

    千次阅读 2011-10-30 15:00:48
    Apache commons-fileupload是一个很好的文件上传工具,最近使用commons-fileupload实现图片上传显示,可将图片保存在指定的文件夹中,也可以将图片存放在数据库,并支持四种常用的图片格式:jpg,png,gif,bmp。...
  • 第一次上传的代码有错,现在这个版本的,附带了正确的代码以及附带了jspSmartUpload.jar,直接解压缩后部署在Tomcat的webapps下即可。
  • jsp Ajax图片上传

    2019-02-15 11:05:23
    jsp Ajax图片上传
  • JSP实现上传图片自动生成缩略图 很简单的 大家看看把
  • ssm框架实现图片上传显示(myeclips)

    万次阅读 多人点赞 2018-07-12 18:13:36
    ssm框架实现图片上传显示 第一步:导入common-io以及common-fileupload两个jar包,尽量新一点,老的有可能出错 第二步:配置图片上传保存的位置,针对myeclips来说,打开文件D:\Java\MyEclipse.metadata.me_tcat...
  • alert("您上传图片格式不正确,请重新选择!"); return false; } imgObjPreview.style.display = 'none'; document.selection.empty(); } return true; } onchange="javascript:...
  • 图片上传:点击“图片”按钮,然后选择”上传“,选择图片文件之后,再点击“上传到服务器”,即可在“图像”标签栏显示预览图像,可以在此调整尺寸大小等参数,点击“确定”即可插入进去,提交之后会显示图片,不用...
  • jspSmartUpload插件实现图片上传

    千次阅读 2014-03-09 11:24:22
    jspSmartUpload是由www.jspsmart.com网站开发的一个可免费使用的全功能的文件上传下载组件,适于嵌入执行上传下载操作的JSP文件中。该组件有以下几个特点:  1、使用简单。在JSP文件中仅仅书写三五行java代码就...
  • jsp中struts的图片上传和预览jsp代码
  • JSP上传图片并裁切及放大显示,常用的JSP程序,看到有不少的图片上传、缩放及裁切程序,手痒就写了个,网上见的多的都是ASP/ASP.NET、php的,还没有发现有JSP的,写时候参数程序比较少,因此程序并不完善,只是实现...
  • JavaWeb实现图片上传显示

    万次阅读 多人点赞 2018-07-03 14:37:19
    1.创建maven项目,打包格式为war,导入maven依赖...运行测试 上传成功啦,将上传路径保存在数据库就可以实现图片上传已经显示了 如果需要做头像上传的话 则需要使用jquery对图片的大小进控制 这样头像上传就可以完成了
  • 通过JSP录入本地图片,MySQL建库,图片以blob值上传数据库,JavaBean封装对象。我上传的是整个项目的代码,并附加使用教程,简单易用。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,872
精华内容 7,148
关键字:

jsp实现图片上传和显示