首页 > 其他分享 >JSP页面实现上传下载

JSP页面实现上传下载

时间:2023-09-14 15:44:39浏览次数:38  
标签:上传下载 request upload SmartUpload JSP file newfile response 页面

 

本文使用的是smartupload工具实现文件的上传下载:

工具:

1、Eclipse

2、jspsmart.jar(百度搜索jspsmartupload.jar下载)

 

JSP页面:

 1 <%--上传 --%>

 2 <form action="upload" method="post" enctype="multipart/form-data">

 3 <input type="file" name="file">

 4 <input type="submit" value="上传">

 5 </form>

 6

 7

 8 <%--下载 --%>

 9 <a href="down?file=A.jpg">下载</a>

10 <form action="down" method="post">

11 <input type="hidden" name="file" value="B.jpg">

12 <input type="submit" value="下载">

13 </form>

Servlet上传处理页面:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //设置字符集(可以通过Filter设置)

        request.setCharacterEncoding("utf-8");

        response.setCharacterEncoding("utf-8");

        response.setContentType("text/html;charset=utf-8");

        //获取一个SmartUpload对象

        SmartUpload upload=new SmartUpload();

        //初始化

        ServletConfig config=this.getServletConfig();

        upload.initialize(config, request, response);

        try {

            //上传文件

            upload.upload();

            //获取上传的文件对象

            File file=upload.getFiles().getFile(0);

            //指定保存文件的路径

            java.io.File newfile=new java.io.File(this.getServletContext().getRealPath("/")+"image");

            if(!newfile.exists())

            {

                newfile.mkdirs();

            }

            //保存文件

            file.saveAs(newfile+"/"+file.getFileName(), file.SAVEAS_PHYSICAL);

            response.getWriter().println("上传成功");

            System.out.println(newfile+"/"+file.getFileName());

        } catch (SmartUploadException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

    }

Servlet下载处理页面:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {             

        //从JSP页面获取到用户需要下载的文件名

        String file=request.getParameter("file");

        //获取一个SmartUpload对象

        SmartUpload download=new SmartUpload();

        //初始化

        ServletConfig config=this.getServletConfig();

        download.initialize(config, request, response);

        //禁止浏览器根据后缀名自动打开文件

        download.setContentDisposition(null);

        try {

        //指定下载地址   
download.downloadFile(this.getServletContext().getRealPath("/")+"image/"+file);

        } catch (SmartUploadException e) {

            e.printStackTrace();

        }

    }

 

 

 

参考文章:http://blog.ncmem.com/wordpress/2023/09/14/jsp%e9%a1%b5%e9%9d%a2%e5%ae%9e%e7%8e%b0%e4%b8%8a%e4%bc%a0%e4%b8%8b%e8%bd%bd/

欢迎入群一起讨论

 

 

标签:上传下载,request,upload,SmartUpload,JSP,file,newfile,response,页面
From: https://www.cnblogs.com/songsu/p/17702681.html

相关文章

  • 访问前台页面${pageContext.request.contextPath}/el表达式失效问题解决
    最近在做项目整合这个问题,然后在项目整合的时候,遇到了好多问题,这是其中一个,在此留作记录吧,虽然关键点不是我处理好的。访问前端页面,我先描述一下具体出现的现象:我访问前端jsp页面的时候,jquery文件,js,css样式等都会失效,也就是没有引入到jsp页面当中。查看浏览器console的时候,发现${pa......
  • java/jsp清除jsp缓存
    InJava:HttpServletResponseresponse=(HttpServletResponse)rep;response.setDateHeader("Expires",-1);response.setHeader("Cache_Control","no-cache");response.setHeader("Pragma","no-ca......
  • JSP两种注释方法
    用了这么久的jsp和java,还不是很清楚jsp页面的注释。^-^1.[b]第一种用显式注释:<!--comment-->[/b]forexample:<!--<geh:checkLogon/>-->此种注释还是会让JVM编译、解释和执行。2.[b]第二种用隐式注释:<%--comment--%>[/b]forexample:<%--......
  • vue-unsaved-changes-dialog 在桌面页面上,弹出窗会跟随鼠标显示
    简介及使用教程这是一个漂亮的未保存变更对话框,有以下特点:有保存、丢弃和取消三个按钮在桌面页面上,弹出窗会跟随鼠标显示显示隐藏动画流畅智能避免弹出在窗口边缘并且随窗口大小调整自动适应完全自适应:在移动设备上全屏显示键盘可导航可访问所有的文案都可以替换更......
  • selenium左右页面右侧滑动
    正常网页的情况翻页滑动或者滑动到底部,都是定位标签,对于网页分左右测,不含框架,可以定位div标签,如果真找不到可以换个浏览器也许会有特殊的发现。          ......
  • tomcat报错:java.io.IOException: 您的主机中的软件中止了一个已建立的连接。页面响应
    tomcat报错:java.io.IOException:您的主机中的软件中止了一个已建立的连接。tomcat报错:org.apache.catalina.connector.ClientAbortException:java.io.IOException:您的主机中的软件中止了一个已建立的连接。 出现原因:1、由于客户端在发送请求后,还没等服务器响应就断开了......
  • SpringMVC报错:HTTP Status 405 - JSPs only permit GET POST or HEAD
    错误描述如果项目是运行在Tomcat8及以上版本,浏览器发出的PUT请求和DELETE请求可以被页面控制器(Controller)成功接收到,但是返回JSP页面则会报HTTP405的错误提示:"消息JSP只允许GET、POST或HEAD。Jasper还允许OPTIONS"。原因分析原因是Tomcat按照JCP规范(JSP......
  • 怎么样能拿到微信小程序每次进入页面的渲染时长?
    要获取微信小程序每次进入页面的渲染时长,可以通过以下几个步骤实现:在页面的onLoad函数中记录开始时间戳:在页面的onLoad函数中,使用Date.now()记录当前时间戳。这将作为页面渲染开始的时间。在页面的onReady函数中记录结束时间戳:在页面的onReady函数中,再次使用Date.now()......
  • 微信 H5 页面兼容性——适配用户修改微信客户端字体大小
    关于微信安卓端网页字体适配的通知微信安卓版7.0.10版本起,网页的字体会跟随微信设置里的字体大小更改而变化。当用户修改微信客户端字体大小后,微信公众号网页的适配就会变得非常繁琐,Android系统设备有8级字体大小,IOS系统设备有7级字体大小,尤其将字体放大到最大一级后,......
  • vue router页面跳转及传参、Vue获取用户输入到页面的数据在另一个页面使用
     vuerouter页面跳转及传参?一、router-link跳转###1.不带参数,name,path都行,建议用name<router-link:to="{name:'home'}"><router-link:to="{path:'/home'}">###2.带params参数<router-link:to="{name:'home'......