用JSP实现文件上传功能
- 格式:docx
- 大小:37.22 KB
- 文档页数:3
用JSP实现拖拽上传文件和文件夹JSP(JavaServer Pages)是一种动态网页技术,允许将Java代码嵌入到HTML页面中。
拖拽上传文件和文件夹是一种常见的网页交互功能,可以使用JSP来实现。
在实现拖拽上传文件和文件夹功能之前,首先需要了解一下拖拽上传的基本原理。
在HTML中,可以通过Drag and Drop API来获取拖拽的文件和文件夹。
然后,可以使用JavaScript将拖拽的文件和文件夹发送到服务器端,服务器端可以使用JSP来处理这些文件和文件夹。
以下是一个基本的实现拖拽上传文件的JSP页面的示例:```htmlpageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="UTF-8"><title>拖拽上传文件</title><script>function handleDrop(event)event.preventDefault(; // 禁止浏览器打开文件var files = event.dataTransfer.files;//遍历上传的文件for (var i = 0; i < files.length; i++)var file = files[i];// 创建FormData对象,用于发送文件到服务器var formData = new FormData(;formData.append("file", file);// 创建一个XMLHttpRequest对象,发送文件到服务器var xhr = new XMLHttpRequest(;xhr.open("POST", "upload.jsp", true);xhr.onreadystatechange = functioif (xhr.readyState == 4 && xhr.status == 200)//上传成功console.log(xhr.responseText);}};xhr.send(formData);}}</script></head><body ondragover="event.preventDefault(;"ondrop="handleDrop(event);"><h1>拖拽上传文件</h1><p>将文件拖拽到此处上传</p></body></html>```当文件被拖拽到页面的时候,`handleDrop(`函数会被调用。
用JSP编写文件上传袁毅:2000-10-23如果你曾用VB编写文件上传的组件的话,那么用JAVA编写文件上传的JAVABEAN十分容易。
下面的例子只是一个简版package yuanyifileup;import java.io.*;import java.util.*;import javax.servlet.*;import javax.servlet.http.*;import javax.servlet.jsp.PageContext;public class yuanyifileup{private ServletRequest request;private ServletResponse response;private ServletConfig config;ServletInputStream DATA;int FormSize;File f1;FileOutputStream os;DataInputStream is;String filename;byte[] b;byte t;boolean flag=false;public yuanyifileup(){ }public void initialize(ServletConfig config,HttpServletRequest request,HttpServlet Response response) throws IOException{this.request=request;this.response=response;this.config=config;DATA = request.getInputStream();FormSize=request.getContentLength();}public void initialize(PageContext pageContext) throws IOException{request=pageContext.getRequest();response=pageContext.getResponse();config=pageContext.getServletConfig();DATA = request.getInputStream();FormSize=request.getContentLength(); }public boolean setFilename(String s) {try{File f1=new File(s);os=new FileOutputStream(f1);}catch(IOException e){return(false);}return(true);}public void getByte(){int i=0;try{is=new DataInputStream(DATA);b=new byte[FormSize];while (true){try{t=is.readByte();b[i]=t;i++;}catch(EOFException e) { break;}}is.close();}catch(IOException e) {}}public boolean save() {int i=0,start1=0,start2=0; String temp="";if (!flag){getByte();flag=true;}try{temp=new String(b,"ISO8859_1");}catch(UnsupportedEncodingException e) {return(false);}start1=temp.indexOf("image/");temp=temp.substring(start1);start1=temp.indexOf("");temp=temp.substring(start1+4);start2=temp.indexOf(";");if (start2!=-1){temp=temp.substring(0,start2);}try{byte[] img=temp.getBytes("ISO8859_1");for (i=0;i<img.length;i++){ os.write(img[i]); }os.close();}catch(IOException e){return(false);}return(true);}如果有不明白的发E-Mail:yymailbox@.Bye }。
以下代码演示了在JSP页面中使用输入流和输出流实现文件上传1.创建upload.jsp页面:<%@ page language="java" import="java.util.*" pageEncoding="GBK"%> <html><head><title>一个简单的文件上传</title></head><body><form action="doUpload.jsp" method="post">标题:<input type="text" name="title"><br>文件位置:<input type="file" name="mfile"><br><input type="submit" value="提交"></form></body></html>2.创建doUpload.jsp页面<%@ page language="java" import="java.util.*,java.io.*" pageEncoding="GBK"%><html><head><title>My JSP 'doUpload.jsp' starting page</title></head><body><%request.setCharacterEncoding("GBK");String title = request.getParameter("title"); //获取页面提交的标题信息String myFile = request.getParameter("mfile"); //获取页面提交的文件int indexOf = stIndexOf("\\"); //获取最后一个“\”所在的索引位String fileName = myFile.substring(indexOf); //获取文件上传的文件名//创建输出流把指定的文件写入WEB工程的upload目录下(需要在WebRoot目录下创建upload目录)。
很多初学jsp的同志都在实现文件上传到服务器这方面不是很了解,今天在这里我会帮助大家慢慢的实现这一功能。
准备工作:1.到网上下载两个包第一个叫做commons-fileupload-1.2.1.jar第二个叫做commons-io-1.3.2.jar2. 建一个项目用来实现文件上传我创建的Web项目名为fileUpload,截图如下3.我们把从网上下载下来的包copy到WebRoot目录下Web-INF下的子目录lib目录里然后打开Referenced Libraries,你会看见两个包已经存在于里面了。
下面我们开始实现文件上传1. 首先我们创建一个名为uploadFile.jsp的页面,如下图:点击浏览,可以出现以下画面源代码如下:<%@page language="java"import="java.util.*"pageEncoding="UTF-8"%> <%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+ ":" +request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>实现文件上传到服务器</title><meta http-equiv="pragma"content="no-cache"><meta http-equiv="cache-control"content="no-cache"><meta http-equiv="expires"content="0"><meta http-equiv="keywords"content="keyword1,keyword2,keyword3"> <meta http-equiv="description"content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><form action="doFileUpload.jsp"method="post"enctype="multipart/form-data">文件:<input type="file"name="chooseFile"/></br>姓名:<input type="text"name="userName"/></br><input type="submit"value="提交"></form></body></html>注意:form表单里的enctype=”multipart/form-data”这一属性一定要写,这是用来标明此表单的类型是文件类型的。
Jsp实现类似百度文库的在线阅读1.首先下载FlashPaper2 并安装。
如果你的系统是win7的话还需要下载一个补丁安装。
关于FlashPaper2 的操作请参考下面的网址。
2.配置struts2的环境.将下面的架包拷贝到项目中。
3.编写上传文件界面。
代码如下:<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%><%@ taglib prefix="s" uri="/struts-tags"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>UPLOAD</title></head><script type="text/javascript" src="js/wait.js"></script><body><s:form action="upload" method="post"enctype="multipart/form-data"><s:file name="file" label="file name:"></s:file><s:textfield name="name" label="new name:"></s:textfield> <s:submit label="ok" onClick="javascript:wait()" /></s:form></body></html>4.编写上后后跳转的页面。
1 JSP文件上传简单实例1、index.html代码:<html><head><title>上传图片</title></head><body><form action="do_upload.jsp" method="post" enctype="multipart/form-data"><input type="file" name="Photo"><input type="submit" value="上传"></form></body></html>2、使用到的函数和类说明File类文件和目录路径名的抽象表示形式,File(parent,child)方法根据parent 抽象路径名和child 路径名字符串创建一个新File实例FileOutputStream文件输出流,InputStream输入流,将输入数据看成一根管道,可以形象的将输入流比喻成管道的入口,而输出流比喻成管道的出口。
read(byte[] b) 从此输入流中将最多 b.length 个字节的数据读入一个字节数组中。
read() 从此输入流中读取一个数据字节。
write(int b) 将指定字节写入此文件输出流,write(byte[] b, int off, int len) 将指定字节数组中从偏移量off 开始的len 个字节写入此文件输出流。
write(byte[] b) 将 b.length 个字节从指定字节数组写入此文件输出流中Random.readLine()逐行读入,Random.seek(int pos)设置到此文件开头测量到的文件指针偏移量,该位置发生下一个读取和写入操作,Random.getFilePointer()返回此文件当前偏移量,Random.readByte()此方法从该文件的当前文件指针开始读取第一个字节。
要实现文件上载,我们必须先了解上载文件的HTTP请求。
下面这个简单的应用示范了如何上载文件以及把HTTP请求的原始数据写入文件。
用文本编辑器查看该文件即可了解请求的格式,在此基础上我们就可以提取出上载文件的名字、文件内容以及原本混合在一起的其他信息。
在这里我们写一个简单的html页面up.html,提供一个表单,用户从这里选择文件并把文件上载到服务器。
<html><head><title>文件上载</title></head><body><form action="upjsp.jsp" enctype="MULTIPART/FORM-DA TA" method=post><br />公司: <input type="text" name="company" /><br />选择要上载的文件 <input type="file" name="filename" /><br /><input type="submit" value="上载" /></form></body></html>注意,<form>标记有一个enctype属性,属性值是"MULTIPART/FORM-DA TA"。
还有个type为file的输入框是用来选择上传文件的。
表单的action属性值是upjsp.jsp,这是将请求发送给upjsp.jsp文件。
upjsp.jsp调用了名为UpBean的JavaBean。
程序如下:<jsp:useBean id="TheBean" scope="page" class="UpBean " /><%TheBean.doUpload(request);%>下面是UpBean的实现代码:import java.io.*;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.ServletInputStream;public class UpBean {public void doUpload(HttpServletRequest request) throws IOException {PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("test.txt"))); ServletInputStream in = request.getInputStream();int i = in.read();while (i != -1) {pw.print((char) i);i = in.read();}pw.close();}}这个JavaBean把HttpServletRequest对象的表单原始数据写入test.txt文件.选择上传一个文本或者网页文件。
js实现文件上传功能后台使用MultipartFile在前端使用JavaScript实现文件上传功能,可以通过使用`FormData`对象来实现。
首先,我们需要创建一个HTML表单,并添加一个文件输入字段。
```html<form id="uploadForm"><input type="file" name="file" id="fileInput"><button type="submit">上传</button></form>```接下来,在JavaScript中,我们可以监听表单的提交事件,并在事件处理程序中获取文件数据,并将其发送到后台。
```javascriptdocument.getElementById('uploadForm').addEventListener('subm it', function(event)event.preventDefault(; // 阻止表单默认提交行为var fileInput = document.getElementById('fileInput');var file = fileInput.files[0];var formData = new FormData(;formData.append('file', file);//发送文件数据到后台var xhr = new XMLHttpRequest(;xhr.open('POST', '/upload'); // 替换成你的后台接口地址xhr.send(formData);});```在后台使用Spring框架时,可以使用`MultipartFile`来接收上传的文件。
手把手教Jsp上传文件(FileUpload+Servlet)所遇到的问题问题一:String fileName = fis.getName().substring(fis.getName().lastIndexOf(""""));//获得上传文件的文件名中""""应未“\\”,lastIndexOf()返回 String 对象中子字符串最后出现的位置。
stIndexOf(substring[, startindex])参数strObj必选项。
String 对象或文字。
substring必选项。
要在 String 对象内查找的子字符串。
startindex可选项。
该整数值指出在 String 对象内进行查找的开始索引位置。
假如省略,则查找从字符串的末尾开始。
说明lastIndexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位置。
假如没有找到子字符串,则返回 -1。
假如 startindex 是负数,则 startindex 被当作零。
假如它比最大字符位置索引还大,则它被当作最大的可能索引。
从右向左执行查找。
否则,该方法和 indexOf 相同。
下面的示例说明了 lastIndexOf 方法的用法:string filepath = "ALow\\K-1s\\2006\\arex1.txt";int i_s = stIndexOf("\\");//最后一个\\前面有14个字符,所以i_s=14string s = filepath.Substring(stIndexOf("\\") + 1);//从第15个字符开始,不包括第15个,取剩下的所有字符此处""""(“\\”)是指截取\及\后的字符,主要确定要传入的文件名,例\ ceshi1.bmp\为转义符\\转义结果为\同理String tmpPath = "f:""tmpdir";String savePath = "f:""updir";为String tmpPath = "f:\\tmpdir";//初始化上传文件的临时存放目录String savePath = "f:\\updir";//初始化上传文件后的保存目录问题二:页面的调用,此模式是先在tomcat中显示页面,再在页面内调用Servlet因此要保证路径正确我的项目名是upload我的jsp名为upload.jsp因此输入的路径为入http://localhost:8080/upload/upload.jsp问题三:页面action的写入upload.jsp sp中<form name="upform" action="UploadServlet" method="POST" enctype="multipart/form-data">问题四:Servlet的的配置Web.xml中<servlet><servlet-name>UploadServlet</servlet-name><servlet-class>UploadServlet</servlet-class></servlet><servlet-mapping><servlet-name>UploadServlet</servlet-name><url-pattern>/UploadServlet</url-pattern>问题五:处理方法为了安全性使用的是dopost方法问题六:Servlet的路径因为我的Web.xml<url-pattern>/UploadServlet</url-pattern>所以我若直接调用Servlet时路径为http://localhost:8080/upload/UploadServlet。
Jsp页面实现文件上传下载第1 页jsp页面实现文件上传代码开发的过程见用TOMCAT作简单的jsp web开发名称:jsp页面上传类作者:SinNeRMail:vogoals[at]特点:1可以多文件上传;2返回上传后的文件名;3form表单中的其他参数也可以得到。
先贴上传类,JspFileUploadpackage com.vogoal.util;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.Hashtable;import javax.servlet.ServletInputStream;import javax.servlet.http.HttpServletRequest;/** vogoalAPI 1.0*************************** by *mail:********************//*** JSP上传文件类** @author SinNeR* @version 1.0*/public class JspFileUpload {/** request对象*/private HttpServletRequest request = null;/** 上传文件的路径*/private String uploadPath = null;/** 每次读取得字节的大小*/private static int BUFSIZE = 1024 * 8;/** 存储参数的Hashtable */private Hashtable paramHt = new Hasptable();/** 存储上传的文件的文件名的ArrayList */private ArrayList updFileArr = new ArrayList();/*** 设定request对象。
用JSP实现文件上传功能
JSP(JavaServer Pages)是一种用于在服务器上生成动态网页的Java技术。
通过使用JSP,可以实现文件上传功能,使用户能够将文件上传到服务器。
一、前端页面设计:
1.创建一个HTML表单,用于用户选择要上传的文件。
2. 指定表单的enctype属性为“multipart/form-data”,以支持文件上传。
3.添加一个提交按钮,用于触发文件上传的动作。
二、后端代码实现:
1.在JSP页面上添加以下代码,用于接收和处理文件上传的请求:
```jsp
<%
String uploadPath = "指定文件上传的目标路径"; // 指定文件上传的目标路径,例如:"/uploads/"
DiskFileItemFactory factory = new DiskFileItemFactory(;
ServletFileUpload upload = new ServletFileUpload(factory);
try
List<FileItem> items = upload.parseRequest(request);
for (FileItem item : items)
if (!item.isFormField() { // 判断是否为上传文件
String fileName = new File(item.getName().getName(;
String filePath = uploadPath + File.separator + fileName;
File storeFile = new File(filePath);
item.write(storeFile); // 保存文件到服务器
out.println("文件上传成功!");
}
}
} catch (Exception e)
out.println("文件上传失败!");
e.printStackTrace(;
%>
```
2. 创建一个文件夹用于存储上传的文件,例如在项目根目录下创建一个名为"uploads"的文件夹。
三、配置web.xml文件:
在web.xml文件中添加以下配置,用于解析文件上传的请求:
```xml
<servlet>
<servlet-name>UploadServlet</servlet-name>
</servlet>
<servlet-mapping>
<servlet-name>UploadServlet</servlet-name>
<url-pattern>/upload</url-pattern>
</servlet-mapping>
```
四、测试文件上传功能:
1. 启动Web服务器,并在浏览器中打开上传文件的页面。
2.选择一个文件并点击提交按钮,触发文件上传的动作。
3. 在服务器上查看指定的文件上传目标路径("uploads"文件夹),检查文件是否成功上传。
通过以上步骤,就可以使用JSP实现文件上传功能。
当用户选择文件并提交表单时,JSP将接收文件上传的请求并将文件保存到指定的目标路径中。
确保在服务器端创建相应的文件夹用于存储上传的文件,并在JSP 页面上添加合适的代码来处理文件上传请求。