<%@ 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">
<center>
<%
//定义上载文件的最大字节
int MAX_SIZE = 102400 * 102400;
// 创建根路径的保存变量
String rootPath;
//声明文件读入类
DataInputStream in = null;
FileOutputStream fileOut = null;
//取得客户端的网络地址
String remoteAddr = request.getRemoteAddr();
//out.print(remoteAddr);
//获得服务器的名字
String serverName = request.getServerName();
//out.print(serverName);
//取得jsp文件相对与根地址的地址
//out.print(request.getServletPath());
//取得互联网程序的绝对地址
String realPath = request.getRealPath(serverName);
//out.println(realPath);
realPath = realPath.substring(0,realPath.lastIndexOf("\"));
//out.print(realPath);
//创建文件的保存目录"upload"
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(" "));
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(" ",pos) + 1;
pos = file.indexOf(" ",pos) + 1;
pos = file.indexOf(" ",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());
}
%>
</center>
</body>
</html>
分享到:
相关推荐
"Jsp上传文件所需jar包"这一主题聚焦于在JSP环境中实现文件上传所需的依赖库。在这个过程中,我们需要重点关注两个主要组件:Servlet和相关的第三方库。 首先,Servlet是Java EE规范的一部分,它允许服务器端处理...
"jsp上传文件模块"是JSP中常见的功能,它允许用户通过Web界面上传文件到服务器。这个模块在很多应用场景中非常实用,比如论坛、博客、同学录等,其中"同学录相片上传"就是一个具体的例子,它能让用户上传个人照片到...
【JSP上传文件Demo】是基于Java服务器页面(JSP)技术实现的一种文件上传功能的示例。在Web开发中,文件上传是一个常见的需求,例如用户上传头像、提交附件等。`SmartUpload`是一个流行的Java库,专门用于处理文件...
【标题】"jsp上传完整源码及SmartUpload组件"揭示了这个压缩包是关于使用JavaServer Pages(JSP)技术实现文件上传功能的一个实例。在Web开发中,文件上传是常见的用户交互需求,例如用户上传个人照片、文档或音频...
首先,我们需要了解JSP上传图片的基本流程。用户通过浏览器提交包含图片的表单,这个表单通常包含一个`<input type="file">`元素,用于选择本地文件。当用户提交表单时,JSP页面接收到文件数据,然后需要对这些数据...
总之,实现一个支持任何文件类型的JSP上传功能涉及到了HTTP的multipart请求、使用Apache Commons FileUpload库解析文件、保存文件到服务器以及可能的安全性检查。理解并掌握这些知识点,将帮助你构建出稳定且健壮的...
JSP上传excel及excel插入至数据库的方法 本文主要介绍了JSP上传excel及excel插入至数据库的方法,涉及JSP文件上传及针对excel的读取、写入数据库等操作技巧。下面是详细的知识点解析: JSP文件上传 在HTML页面中...
【标题】:“宏软JSP上传系统 v2.0完美版_upload-v2.rar”是一款基于JSP技术构建的上传系统,旨在提供一个简洁而实用的文件上传解决方案。它支持用户从网页界面上传文本文件,并在上传成功后能够展示文件的相关信息...
总结起来,使用`jsp上传图片和文件,直接用JAR包,调用很方便`这种方法,开发者可以借助`jsmartcom`这样的库简化文件上传操作,提高开发效率。通过在JSP页面中创建表单,处理上传请求,然后将文件保存到服务器,整个...
【标题】"poi解析jsp上传的excel文件并导入mysql(支持xls和xlsx)优化版"主要涉及了两个关键技术和一个优化点。首先,POI是Apache软件基金会的Java API,用于处理Microsoft Office格式的文件,如Excel。在这个场景...
本话题聚焦于“JSP上传图片”,这是一个常见的功能需求,特别是在用户交互丰富的网站中,如社交网络、博客平台等,用户可能需要上传个人头像或分享图片。 首先,理解JSP上传图片的基本流程: 1. **前端界面**:用户...
本示例项目"纯jsp上传下载 支持其他参数传递"提供了一种基于Java和JSP实现文件上传和下载的方法,同时也允许传递其他参数。下面我们将详细探讨这个项目的组成部分和相关知识点。 1. JSP(JavaServer Pages)与...
JSP上传功能是Web应用中常见的一种需求,它允许用户通过网页上传图片、文档等文件到服务器。 描述中提到的“免费的多个jsp上传组件”,表明这是一个无需付费的解决方案,可以供开发者在他们的JSP项目中集成,以便...
JSP上传文件(有进度条)可上传大文件 网上有很多文章都是jspsmart,由于jspsmart直接在内存中操作数据,如果上传大文件或多台计算机上传的话会出错,还有一些方法传得比较慢。 为了方便上传文件,本人写了一个传输...
在JSP上传图片前预览图片在JSP上传图片前预览图片
jsp上传控件-smartupload能够完美的进行上传和下载
uploadify jsp上传附件火狐浏览器不兼容丢失session问题,Uploadify v3.2
在这个场景中,"jsp上传图片预览"是一个常见的需求,它涉及到用户在上传图片前能够在网页上预览所选的图片。这一功能不仅提升了用户体验,也减少了因上传错误图片而导致的不必要的麻烦。 首先,我们需要了解图片...
在描述中提到,“jsp上传图片到数据库的列子,里面的带有文字的描叙,很清晰”,这意味着压缩包中的文档提供了步骤清晰的教程或案例研究,指导用户如何利用JSP处理图片上传并将其存储到数据库中。通常,这一过程包括...
"jsp上传文件完整版"这个标题表明我们将讨论一个全面的教程或示例,涵盖了从接收文件到保存在服务器上的整个过程。描述中的重复进一步强调了这是关于JSP文件上传的全面指南。 JSP文件上传主要涉及到以下几个关键...