jsp文件上传
来源:互联网 发布:java图形界面设计简单 编辑:程序博客网 时间:2024/05/29 07:06
<%@ page contentType="text/html; charset=GBK"%><%@ page import="java.io.*"%><%@ page import="java.util.*"%><%@ page import="javax.servlet.*"%><%@ page import="javax.servlet.http.*"%><html> <head> <title>upFile</title> </head> <body bgcolor="#ffffff"> <% //定义上载文件的最大字节 int MAX_SIZE = 102400 * 102400; // 创建根路径的保存变量 String rootPath; //声明文件读入类 DataInputStream in = null; FileOutputStream fileOut = null; //取得客户端的网络地址 String remoteAddr = request.getRemoteAddr();
//获得服务器的名字 String serverName = request.getServerName(); out.print("serverName=" + serverName + "<br>");
//取得jsp文件相对与根地址的地址 out.print("request.getServletPath()=" + request.getServletPath() + "<br>");
//取得互联网程序的绝对地址 String realPath = request.getRealPath(serverName); out.println("request.getRealPath(serverName)=" + realPath + "<br>");
realPath = realPath.substring(0, realPath.lastIndexOf("//")); System.out.print("realPath=" + realPath + "<br>");
//创建文件的保存目录 rootPath = realPath + "//upload//"; out.println("文件的保存目录=" + rootPath);
//取得客户端上传的数据类型 String contentType = request.getContentType(); out.println("<p>客户端上传的数据类型 = " + contentType + "</p>"); try { if (contentType.indexOf("multipart/form-data") >= 0) { //读入上传的数据 in = new DataInputStream(request.getInputStream()); int formDataLength = request.getContentLength(); if (formDataLength > MAX_SIZE) { out.println("<P>上传的文件字节数不可以超过" + MAX_SIZE + "</p>"); 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); //out.println(file); //取得上传的数据的文件名 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; //out.print(fileName); 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; //out.println(boundaryLocation); //取得文件数据的开始的位置 int startPos = ((file.substring(0, pos)).getBytes()).length; //out.println(startPos); //取得文件数据的结束的位置 int endPos = ((file.substring(0, boundaryLocation)) .getBytes()).length; //out.println(endPos); //检查上载文件是否存在 File checkFile = new File(fileName); if (checkFile.exists()) { out.println("<p>" + saveFile + "文件已经存在.</p>"); } //检查上载文件的目录是否存在 File fileDir = new File(rootPath); if (!fileDir.exists()) { fileDir.mkdirs(); } //创建文件的写出类 fileOut = new FileOutputStream(fileName); //保存文件的数据 fileOut.write(dataBytes, startPos, (endPos - startPos)); fileOut.close(); out.println("<P>" + saveFile + "文件成功上载.</p>"); } else { String content = request.getContentType(); out.println("<p>上传的数据类型不是是multipart/form-data</p>"); } } catch (Exception ex) { throw new ServletException(ex.getMessage()); } %> </body></html>
文章转自:http://www.128kj.com/article/article5/7ADB83463E6920B438FA8D83B3EF5814.htm?id=189
- JSP 进行文件上传。JSP文件上传
- jsp文件上传
- jsp文件上传
- jsp文件上传处理
- jsp实现文件上传
- jsp上传文件
- JSP mySmartUpload上传文件
- JSP Uploader上传文件
- jsp上传文件
- 文件上传(JSP)
- 使用jsp上传文件
- Jsp 上传文件
- 上传文件 JSP+java
- jsp上传文件
- jsp实现文件上传
- JSP smartupload 文件上传
- 使用jsp上传文件
- jsp单文件上传
- 中科院Java高端培训视频教程第04讲-F
- 工作整整1年的心路感受
- 数据库电子图书与视频教程网站大全
- C#学习笔记四-----索引器
- 富客户端最佳实践之首要:异步
- jsp文件上传
- New Design
- 输入法编辑器(IME)程序设计(1)
- IBM Linux总监:开源与商业软件不冲突
- 使用标准的表单字段名
- Oracle Hint: GATHER_PLAN_STATISTICS
- 微软:打破人类商业铁律的“上帝”?
- 生成文件的js代码
- 输入法编辑器(IME)程序设计(2)