使用jsp实现文件上传的功能
首先是表单的jsp文件:upload.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>文件上传</title>
</head>
<body>
<h1>文件上传</h1><form action="message.jsp" method="post" enctype="multipart/form-data">选择一个文件:<input type="file" name="uploadFile"/><br/><br/><input type="submit" value="上传"/>
</form>
</body>
</html>
上传处理的jsp文件:message.jsp:
<%--Created by IntelliJ IDEA.User: DELLDate: 2018/4/20Time: 14:10To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.io.*,java.util.*,javax.servlet.*,javax.servlet.http.*" %>
<%@ page import="java.rmi.ServerException" %>
<html>
<head><title></title>
</head>
<body>
<%//定义上传文件的最大字节int MAX_SIZE = 102400 * 102400;//创建根路径的保存变量String rootPath;//声明文件读入类DataInputStream in = null;FileOutputStream fileOut = null;//取得互联网程序的绝对地址String realPath = request.getSession().getServletContext().getRealPath("/");realPath = realPath.substring(0, realPath.indexOf("\\out"));
// out.print(realPath);//创建文件的保存目录rootPath = realPath + "\\web\\upload\\";//取得客户端上传的数据类型String contentType = request.getContentType();try {if (contentType.indexOf("multipart/form-data") >= 0) {//读入上传数据in = new DataInputStream(request.getInputStream());int formDataLength = request.getContentLength();if (formDataLength > MAX_SIZE) {out.print("上传的字节不可以超过" + MAX_SIZE + "字节");return;}//保存上传文件的数据byte dataBytes[] = new byte[formDataLength];int byteRead = 0;int totalBytesRead = 0;//上传的数据保存在byte数组里面while (totalBytesRead < formDataLength) {byteRead = in.read(dataBytes, totalBytesRead, formDataLength);totalBytesRead += byteRead;}//根据byte数组创建字符串String file = new String(dataBytes, "utf-8");//取得上传数据的文件名String saveFile = file.substring(file.indexOf("filename=\"") + 10);saveFile = saveFile.substring(0, saveFile.indexOf("\n"));saveFile = saveFile.substring(saveFile.lastIndexOf("\\") + 1, saveFile.indexOf("\""));int lastIndex = contentType.lastIndexOf("=");//取得数据的分隔字符串String boundary = contentType.substring(lastIndex + 1, contentType.length());//创建保存路径的文件名String fileName = rootPath + saveFile;int pos;pos = file.indexOf("filename = \"");pos = file.indexOf("\n", pos) + 1;pos = file.indexOf("\n", pos) + 1;pos = file.indexOf("\n", pos) + 1;int boundaryLocation = file.indexOf(boundary, pos) - 4;//取得文件数据的开始的位置int startPos = ((file.substring(0, pos)).getBytes()).length;int endPos = ((file.substring(0, boundaryLocation)).getBytes()).length;File checkFile = new File(fileName);if (checkFile.exists()) {out.println("<p>" + saveFile + "文件已经存在.</p>");return;}//检查上传文件的目录是否存在File fileDir = new File(rootPath);if (!fileDir.exists()) {fileDir.mkdirs();}//创建文件的输出类fileOut = new FileOutputStream(fileName);//保存文件的数据fileOut.write(dataBytes, startPos, (endPos - startPos));fileOut.close();out.print("<b>文件上传成功</b>");} else {String content = request.getContentType();out.print("上传的文件类型是" + content + "类型的,请上传目录mutipart/form-data类型的文件");}} catch (Exception ex) {throw new ServerException(ex.getMessage());}
%>
</body>
</html>
转载于:https://www.cnblogs.com/mmykdbc/p/8917317.html
使用jsp实现文件上传的功能相关推荐
- JavaWeb实现文件上传下载功能实例解析
转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能 ...
- 项目_功能模块_基于Spring Boot的文件上传下载功能的设计与实现
文章目录 基于Spring Boot的文件上传下载功能模块的设计与实现 1.前言 2.技术栈 3.关键源码 4.实现效果 4.1.登录 4.2.文件列表 4.3.上传文件测试 4.3.1.测试图片 4 ...
- 教你如何实现c#文件上传下载功能
简单介绍一下c#文件上传下载功能实现. NuGet 安装SqlSugar Model文件下新建 DbContext 类 public class DbContext {public DbContext ...
- java jsp 文件上传_用JSP编写文件上传
用JSP编写文件上传 发布时间:2016-09-14 来源: 点击: 次 如果你曾用VB编写文件上传的组件的话,那么用JAVA编写文件上传的JAVABEAN十分容易. 下面的例子只是一个简版 pack ...
- java文件流 m.jb51.net_FasfDFS整合Java实现文件上传下载功能实例详解
今天使用Java代码实现文件的上传和下载.对此作者提供了Java API支持,下载fastdfs-client-java将源码添加到项目中.或者在Maven项目pom.xml文件中添加依赖 org.c ...
- Goby 漏洞更新 | 万户 OA OfficeServer.jsp 任意文件上传漏洞
漏洞名称:万户 OA OfficeServer.jsp 任意文件上传漏洞 English Name:ezOFFICE OA OfficeServer.jsp Arbitrarily File Uplo ...
- java实现文件上传下载功能
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...
- JavaWeb实现文件上传下载功能实例详解
感谢原文作者分享,原文链接:http://www.jb51.net/article/96745.htm 这篇文章主要介绍了JavaWeb中的文件上传和下载功能的实现,在开发中,文件上传和下载功能是非常 ...
- 基于Servlet4的文件上传下载功能,原生态。
效果展现 maven依赖 为了让同学们直接引入依赖,我这里贴出了dependencies <dependencies><!-- https://mvnrepository.com/a ...
最新文章
- oracle failovermode,[WK-T]ORACLE 10G 配置故障转移(Failover)
- 集合之TreeMap源码分析,简单介绍什么是红黑树,SortedMap和NavigableMap之间的关系和区别
- mysql online ddl和pt_online ddl与pt-osc详解
- 【学习笔记】redis一些配置文件参数详解
- 小白的CMMI3体验
- 推荐一个Asp.Net Core工具库
- art-template入门(六)之解析规则
- codeforces 486A-C语言解题报告
- iOS UITableView的使用 (选自oschina)
- hdu 2089 数位dp入门
- 【Python】pymysql.err.InternalError: (1236, 'Misconfigured master - server_id was not set')
- Echarts实现柱状图下钻功能
- java logger 乱码_Log4j乱码
- WordPress 前端投稿/编辑发表文章插件 DJD Site Post(支持游客和已注册用户)汉化版 免费下载...
- 王者服务器维修2019年四月份,王者荣耀2019年4月新皮肤有哪些?4月新皮肤什么时候出...
- css样式 向下补白,DIVCSSpadding内补白(内边距)leftrighttopbottom_html/css_WEB-ITnose
- .net中的认证(authentication)与授权(authorization)
- Matlab绘制各种小波函数及尺度函数图
- 基于嵌入式Linux进行Python应用开发
- 别说对不起,你没那么爱我了