JSP 显示已上传文件的文件名
- 格式:doc
- 大小:69.50 KB
- 文档页数:2
用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(`函数会被调用。
upfile.jsp<form method="post" action="uploadimage.jsp" name="form1"enctype="multipart/form-data"><input type="file" name="file"><input type="submIT" name="sub" value="upload"></form><form method="post" action="uploadimage.jsp" name="form1"enctype="multipart/form-data"><input type="file" name="file"><input type="submit" name="sub" value="upload"></form><STRONG><FONT color=#ff0000>uploadimage.jsp</FONT></STRONG>uploadimage.jsp<PRE class=="code"><%@ page language="java" pageEncoding="gb2312"%><%@ pageimport="java.io.*,java.awt.image.*,com.sun.image.codec.jpeg.*,jav a.sql.*,com.jspsmart.upload.*,java.util.*"%><%@ page import="mainClass.*"%><html><head><title>My JSP'uploadimage.jsp' starting page</title></head><body><%S martUpload sma = new SmartUpload();l ong file_max_size = 4000000;S tring filename1 = "", ext = "", testvar = "";S tring url = "uploadfiles/";s ma.initialize(pageContext);t ry{sma.setAllowedFilesList("jpg,gif");sma.upload();}catch (Exception e) {%><script language="jscript">alert("只允许上传jpg,gif格式图片");window.location.href="upfile.jsp"</script><%}try {com.jspsmart.upload.File myf = sma.getFiles().getFile(0);if (myf.isMissing()) {%><script language="jscript">alert("请选择要上传的文件!");window.location.href="upfile.jsp"</script><%} else {ext = myf.getFileExt();int file_size = myf.getSize();String saveurl = "";if (file_size < file_max_size) {Calendar cal = Calendar.getInstance();String filename = String.valueOf(cal.getTimeInMills());saveurl = request.getRealPath("/") + url;saveurl += filename + "." + ext;myf.saveAs(saveurl, sma.SAVE_PHYSICAL);myclass mc = new myclass(request.getRealPath("data/data.mdb"));mc.executeInsert("insert into [path] values('uploadfiles/"+ filename + "." + ext + "')");//检查out.println("图片上传成功!");response.sendRedirect("showimg.jsp");}}} catch (Exception e) {e.printStackTrace();}%></body></html> </PRE>。
js中返回文件路径字符串中最后一位斜杠后的文件名文章标题:深度探讨JavaScript中返回文件路径字符串中最后一位斜杠后的文件名在JavaScript编程中,经常会遇到需要解析文件路径字符串获取文件名的情况。
文件路径字符串的格式可以是各种各样的,但我们通常关注的是如何从中提取出最后一位斜杠后的文件名。
在本文中,我将从简到繁地探讨JavaScript中如何实现这一功能,并共享一些个人观点和理解。
1. 基本方法在JavaScript中,我们可以使用字符串的split()方法来根据斜杠对文件路径进行分割,然后取得数组中的最后一项即可得到文件名。
例如:```javascriptconst filePath = 'path/to/some/file.txt';const fileName = filePath.split('/').pop();console.log('文件名:', fileName);```通过以上代码,我们可以很容易地获取到最后一位斜杠后的文件名,这是一种简单但有效的方法。
2. 考虑多种情况然而,在实际开发中,文件路径的格式可能并不是那么规范。
有时候会出现斜杠使用不同的情况,例如'path/to/some\\file.txt',这时候我们就需要考虑多种情况来确保我们能够正确地获取文件名。
可以通过正则表达式来匹配斜杠并进行分割,或者使用path模块提供的方法来处理文件路径。
3. 考虑兼容性另外,我们也需要考虑代码的兼容性。
在不同的操作系统上,文件路径的表示方式也有所不同。
我们需要保证我们的解析方法在不同的环境下都能正确地获取到文件名。
总结回顾在本文中,我们首先介绍了基本的方法来解析文件路径字符串获取文件名,然后探讨了在实际开发中需要考虑的多种情况以及兼容性的问题。
从简到繁地讨论了JavaScript中返回文件路径字符串中最后一位斜杠后的文件名,希望能够帮助读者更深入地理解这一功能。
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()此方法从该文件的当前文件指针开始读取第一个字节。
在jsp 上显示pdf 网页直接打开PDF 文件的MIME 类型是"application/pdf "。
要用servlet 来打开一个PDF 文档,需要将response 对象中header 的contentType 类型设置成"application/pdf ":Microsoft Word 文档,你就要将response 对象的content 类型设置成"application/msword ": 你只要将文件写到servlet 的输出流中,就可以利用servlet 在浏览器中打开一个文件。
首先从获得servlet 的输出流开始:Java code?1 2 3 4 ServletOutputStream out= response.getOutputStream();respost.setContentType("application/pdf ");respose.setHeader( "Content-disposition", "attachment;filename=" +"pp .pdf");//别人下载时的文件名。
完成上述工作后,剩下的就非常简单了。
你需要根据待传送文件的名字,创建一个 .URL 对象。
交给 URL 构造器的字符串必须是指向该文件的一个有效 URL 地址。
如:Java code?123 4 5 6 7 8 9 10 11 12 13 14 15String fileURL = "http://192.168.2.106:8080/file/pp.pdf"; URL url = new URL(fileURL);//********************************************************* //如果需要通过防火墙,要考虑URL 链接//********************************************************* BufferedInputStream bis = new BufferedInputStream(url.openS tream());//完成上述操作,就只要简单地将 InputStream 中的字节,写入到 servlet 的输出流 OutputStream 中:BufferedOutputStream bos = new BufferedOutputStream(response .getOutputStream());byte[] buff = new byte[2048];int bytesRead;// Simple read/write loop.while(-1 != (bytesRead = bis.read(buff,0,buff.length))){ bos.write(buff, 0, bytesRead);}。
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对象。
UploadExample.jsp<%@ page contentType="text/html;charset=gb2312"%> <html><title><%= application.getServerInfo() %></title><body>上传文件程序应用示例<form action="doUpload.jsp" method="post"enctype="multipart/form-data"><%-- 类型enctype用multipart/form-data,这样可以把文件中的数据作为流式数据上传,不管是什么文件类型,均可上传。
--%>请选择要上传的文件<input type="file" name="upfile" size="50"><input type="submit" value="提交"></form></body></html>doUpload.jsp<%@ 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();//取得互联网程序的绝对地址String realPath = request.getRealPath(serverName);realPath =realPath.substring(0,stIndexOf("\\"));//创建文件的保存目录rootPath = realPath + "\\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.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(stIndexOf("\\") + 1,saveFile.indexOf("\""));int lastIndex = stIndexOf("=");//取得数据的分隔字符串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(saveFile + "文件成功上载.</p>");}else{String content = request.getContentType();out.println("<p>上传的数据类型不是multipart/form-data</p>");}}catch(Exception ex){throw new ServletException(ex.getMessage());}%></body></html>。