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>。
.jsp文件怎么打开
jsp是一种嵌入式网页脚本,正常情况下可以用记事本等文本工具直接打开,也可用DREAMWEA VER等网页设计工具友好编辑。
不过这样只能看到程序的源代码。
当然,我们也可以用IE等浏览器直接打开浏览,前提是JSP脚本不是服务器执行的源代码。
方法一用文本工具打开查看源代码
找到并打开JSP源文件所在的文件夹:
可以发现,一般情况下.jsp文件是不可识别的,以不可识别图标显示,
右击,选择“打开方式”对话框;
找到并选择“记事本”:
当前,我们除了选择“记事本”以外,我们也可以选择word、写字板或上面的Adobe Dreamweaver;
选择“打开方式”对话框下面的“始终使用选择的程序打开这种文件”复选框;
点击“确定”,打开了记事本,并打开显示了这个jsp文件的源代码:
同时,我们观察jsp所在的文件夹,发现所有.jsp文件图标都显示为记事本的图标了:
这样的话就说明.jsp文件已经和记事本关联了,以后直接双击任意的.jsp文件是都会自动的直接用记事本打开JSP文件。
方法二用浏览器查看jsp执行结果
如果用记事本打开不是你要的结果,你可以用浏览器打开JSP文件查看JSP程序的执行结果,当然,前提是这个JSP文件不是服务器执行的程序。
我们先打开IE浏览器:
再找到并打开JSP源文件所在的文件夹:
鼠标左键选中并按住jsp文件不放,拖动到浏览器窗口并释放鼠标左键:
浏览器中显示出了这个jsp程序的执行结果:。
JSP jspSmartUpload上传组件jspSmartUpload是由网站开发的一个可免费使用的全功能的文件上传下载组件,适于嵌入执行上传下载操作的JSP文件中。
该组件有以下几个特点:●使用简单。
在JSP文件中仅仅书写三五行JA V A代码就可以完成文件的上传或下载。
●能全程控制上传。
利用jspSmartUpload组件提供的对象及其操作方法,可以获得上传文件的全部信息(包括文件名,大小,类型,扩展名,文件数据等),方便存取。
●能对上传的文件在大小、类型等方面做出限制。
由此可以滤掉不符合要求的文件。
●下载灵活。
仅写两行代码,就能把Web服务器变成文件服务器。
不管文件在Web服务器的目录下或在其他任何目录下,都可以利用jspSmartUpload进行下载。
●能将文件上传到数据库中,也能将数据库中的数据下载下来。
但这种功能只针对MYSQL数据库,不具有通用性。
jspSmartUpload组件可以从网站上自由下载,压缩包的名字是jspSmartUpload.zip。
下载后,用WinZip或WinRAR将其解压到Tomcat的webapps 目录下。
因为Tomcat对文件名大小写敏感,所以解压后,将webapps/jspsmartupload 目录下的子目录Web-inf名字改为全大写的WEB-INF,这样修改后jspSmartUpload 类才能使用。
注意,按上述方法安装后,只有webapps/jspsmartupload目录下的程序可以使用jspSmartUpload组件,如果想让Tomcat服务器的所有Web应用程序都能用它,必须用压缩软件将com目录下的所有文件压缩成jspSmartUpload.zip,将jspSmartUpload.zip换名为jspSmartUpload.jar文件,然后将jspSmartUpload.jar拷贝到Tomcat的shared/lib目录下。
下面简要介绍jspSmartUpload的几个类。
3000分求JSP 图片上传/放大缩小/裁减的源代码guestdsf竹省省市滋发息加友铜牌会员1 # 大 中 小 发表于 2009-08-27 10:33:003000分求JSP 图片上传/放大缩小/裁减的源代码。
能裁减固定大小比如(120*100)的就行。
有预览,能显示图片长宽和大小(file size)最好。
本人结帖率是99.87%, 可用分8000+非常感谢!!如果没有JSP 源代码,PHP 源代码也可以。
package myBean; import java.io.*; public class uploadpic {String picPath;//图片路径 (如:F:picturea.gif ) public String pictype[];//设置图片的后缀名 FileInputStream in; int piclength;//设置图片的最大kb public void setpicPath(String picPath)//获得图片的路径 {this.picPath=picPath; } 设置图片的最大长度{this.piclength=piclength;}public int getpiclength(){return piclength;}public boolean testlength()//判断图片的长度是否大于设定的最大长度try{in=new FileInputStream(picPath);if(in.available()/1024>piclength)return false;}catch(IOException e){System.out.println(e.getMessage());}return true;}public void setpictype(String[] pictype)//设置图片的扩展名{this.pictype=pictype;}public boolean testpictype()//判断图片的扩展名是否是规定的{if(pictype!=null){for(int i=0;i <pictype.length;i ){if(picPath.endsWith(pictype))return true;}return false;}return false;}}以下是在jsp页面中调用uploadpic首先要引入此bean所在的包<%@page import="myBean.uploadpic" %><jsp:useBean id="pic" scope="page" class="myBean.uploadpic" /> 下一条语句是得到上一层页面,也就是用户提交的图片路径!picp=codetostring.codeToString(request.getParameter("picPath"));pic.setpicPath(picp);pic.setpiclength(100);//以kb为单位if(pic.testlength())out.print("length ok <br>");elseout.print("length ok");String p1,p2;p1=".jpg";p2=".gif";String[] type={p1,p2};pic.setpictype(type);if(pic.testpictype())out.print("typeok");elseout.print("type error");made by zonecens 不知道2楼的怎么样,我来学习一个!帮顶!好像百度一招很多百度一下,找到相关网页约11,400,000篇,用时0.036秒3000连个星星都升不了这个是JAVA代码package ftp;import .ftp.*;import .*;import java.awt.*;import java.awt.event.*;import java.applet.*;import java.io.*;class FTPextends Applet {FtpClient aftp;DataOutputStream outputs;TelnetInputStream ins;TelnetOutputStream outs;TextArea lsArea;Label LblPrompt;Button BtnConn;Button BtnClose;TextField TxtUID;TextField TxtPWD;TextField TxtHost;int ch;public String a = "没有连接主机";String hostname = "";public void init() {setBackground(Color.white);setLayout(new GridBagLayout());GridBagConstraints GBC = new GridBagConstraints();LblPrompt = new Label("没有连接主机");LblPrompt.setAlignment(Label.LEFT);BtnConn = new Button("连接");BtnClose = new Button("断开");BtnClose.enable(false);TxtUID = new TextField("", 15);TxtPWD = new TextField("", 15);TxtPWD.setEchoCharacter('*');TxtHost = new TextField("", 20);Label LblUID = new Label("User ID:");Label LblPWD = new Label("PWD:");Label LblHost = new Label("Host:");lsArea = new TextArea(30, 80);lsArea.setEditable(false);GBC.gridwidth = GridBagConstraints.REMAINDER;GBC.fill = GridBagConstraints.HORIZONTAL; ( (GridBagLayout) getLayout()).setConstraints(LblPrompt, GBC);add(LblPrompt);GBC.gridwidth = 1;( (GridBagLayout) getLayout()).setConstraints(LblHost, GBC);add(LblHost);GBC.gridwidth = GridBagConstraints.REMAINDER; ( (GridBagLayout) getLayout()).setConstraints(TxtHost, GBC);add(TxtHost);GBC.gridwidth = 1;( (GridBagLayout) getLayout()).setConstraints(LblUID, GBC);add(LblUID);GBC.gridwidth = 1;( (GridBagLayout) getLayout()).setConstraints(TxtUID, GBC);add(TxtUID);GBC.gridwidth = 1;( (GridBagLayout) getLayout()).setConstraints(LblPWD, GBC);add(LblPWD);GBC.gridwidth = 1;( (GridBagLayout) getLayout()).setConstraints(TxtPWD, GBC);add(TxtPWD);GBC.gridwidth = 1;GBC.weightx = 2;( (GridBagLayout) getLayout()).setConstraints(BtnConn, GBC);add(BtnConn);GBC.gridwidth = GridBagConstraints.REMAINDER;( (GridBagLayout) getLayout()).setConstraints(BtnClose, GBC);add(BtnClose);GBC.gridwidth = GridBagConstraints.REMAINDER;GBC.fill = GridBagConstraints.HORIZONTAL;( (GridBagLayout) getLayout()).setConstraints(lsArea, GBC);add(lsArea);}public boolean connect(String hostname, String uid,String pwd) {this.hostname = hostname;LblPrompt.setText("正在连接,请等待.....");try {aftp = new FtpClient(hostname);aftp.login(uid, pwd);aftp.binary();showFileContents();}catch (FtpLoginException e) {a = "无权限与主机:" + hostname + "连接!";LblPrompt.setText(a);return false;}catch (IOException e) {a = "连接主机:" + hostname + "失败!";LblPrompt.setText(a);return false;}catch (SecurityException e) {a = "无权限与主机:" + hostname + "连接!";LblPrompt.setText(a);return false;}LblPrompt.setText("连接主机:" + hostname + "成功!");return true;}public void stop() {try {aftp.closeServer();}catch (IOException e) {}}public void paint(Graphics g) {}public boolean action(Event evt, Object obj) { if (evt.target == BtnConn) {LblPrompt.setText("正在连接,请等待....."); if (connect(TxtHost.getText(), TxtUID.getText(), TxtPWD.getText())) {BtnConn.setEnabled(false);BtnClose.setEnabled(true);}return true;}if (evt.target == BtnClose) {BtnConn.enable(true);BtnClose.enable(false);LblPrompt.setText("与主机" + hostname + "连接已断开!");return true;}return super.action(evt, obj);}public boolean sendFile(String filepathname) { boolean result = true;if (aftp != null) {LblPrompt.setText("正在粘贴文件,请耐心等待....");String contentperline;try {a = "粘贴成功!";String fg = new String("\");int index = stIndexOf(fg);String filename = filepathname.substring(index + 1);File localFile;localFile = new File(filepathname); RandomAccessFile sendFile = new RandomAccessFile(filepathname, "r");//sendFile.seek(0);outs = aftp.put(filename);outputs = new DataOutputStream(outs); while (sendFile.getFilePointer() < sendFile.length()) {ch = sendFile.read();outputs.write(ch);outs.close();sendFile.close();}catch (IOException e) {a = "粘贴失败!";result = false;}LblPrompt.setText(a);showFileContents();}else {result = false;}return result;}public void showFileContents() {StringBuffer buf = new StringBuffer();lsArea.setText("");try {ins = aftp.list();while ( (ch = ins.read()) >= 0) { buf.append( (char) ch);}lsArea.appendText(buf.toString());ins.close();}catch (IOException e) {}}public static void main(String args[]) { Frame f = new Frame("FTP Client");f.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) { System.exit(0);}});FTP ftp = new FTP();ftp.init();ftp.start();f.add(ftp);f.pack();f.setVisible(true);}}2楼 2004-10-13 08:56 angel7532 [引用] [回复]这个是HTML网页<html><head><meta http-equiv="Content-Type" content="text/html; charset=GBK" /><title>FTP下载 </title><script type="text/javascript">var javawsInstalled = false;var isIE = false;var isICE = erAgent.indexOf("ICEBrowser") >=0;if (navigator.mimeTypes && navigator.mimeTypes.length) javawsInstalled = navigator.mimeTypes['application/x-java-jnlp-file'];elseisIE = true;function insertLink(url, name) {if (javawsInstalled) {document.write("<a href="" + url + "">" + name + " </a>");} else {if (isICE) {document.write("JBuilder's Web View does not support Web Start (no appropriate Web Start plugin is available). ");document.write("Other popular (external) browsers are supported");} else {document.write("Need to install Java Web Start");}document.write(" -- for more information, visit");document.write("<a href="/products/javawebstart/">" );document.write("the Java Web Start page");document.write(" </a>");}}</script><script type="text/vbscript">on error resume nextIf isIE ThenIf Not(IsObject(CreateObject("JavaWebStart.IsInstalled"))) ThenjavawsInstalled = falseElsejavawsInstalled = trueEnd IfEnd If</script></head><body><h1>Java Web Start application </h1> <script type="text/javascript"><!--insertLink("FTPEXE.jnlp","FTP下载");// --></script><noscript><a href="FTPEXE.jnlp">FTP下载 </a></noscript></body></html>3楼 2004-10-13 09:21 szabo [引用] [回复]angel7532(卡卡西):哪我服务器上要不要作一些配置或安装其他软件呢?4楼 2004-10-15 09:30 szabo [引用] [回复] 不能沉啊。
获取文件件文件名称的方法获取文件名称的方法在计算机操作中,获取文件名称是一项基本的操作。
无论是在个人电脑上还是在服务器上,获取文件名称都是必不可少的。
下面将介绍几种获取文件名称的方法。
1.使用文件管理器在Windows操作系统中,使用文件管理器是最简单的获取文件名称的方法。
打开文件管理器,找到需要获取名称的文件,右键单击该文件,选择“属性”选项,即可在弹出的窗口中看到文件名称。
2.使用命令行在Windows操作系统中,使用命令行也可以获取文件名称。
打开命令行窗口,输入“dir”命令,即可列出当前目录下的所有文件和文件夹。
在文件列表中找到需要获取名称的文件,即可看到该文件的名称。
3.使用编程语言在编程中,获取文件名称也是一项常见的操作。
下面以Python语言为例,介绍如何获取文件名称。
```pythonimport os# 获取当前目录下的所有文件和文件夹files = os.listdir()# 遍历文件列表,获取文件名称for file in files:# 判断是否为文件if os.path.isfile(file):# 获取文件名称filename = os.path.basename(file)print(filename)```以上代码将获取当前目录下的所有文件和文件夹,并遍历文件列表,判断是否为文件,如果是文件,则获取文件名称并输出。
4.使用第三方工具除了以上方法外,还可以使用第三方工具来获取文件名称。
例如,使用WinRAR压缩软件,打开需要获取名称的压缩文件,即可看到文件名称。
总结获取文件名称是一项基本的操作,可以使用文件管理器、命令行、编程语言和第三方工具等多种方法。
在实际操作中,可以根据具体情况选择最适合的方法。
在JavaScript中,由于安全性的限制,无法直接获取上传文件的绝对路径。
浏览器会将上传的文件路径进行处理,以保护用户的隐私和安全。
但是,你可以通过使用File API来获取上传文件的相关信息,如文件名、大小、类型等。
下面是一个示例代码:
```javascript
// 获取文件上传的input元素
var fileInput = document.getElementById('fileInput');
// 监听文件选择事件
fileInput.addEventListener('change', function(e) {
// 获取选中的文件
var file = e.target.files[0];
// 输出文件名、大小和类型
console.log('文件名:', );
console.log('文件大小:', file.size);
console.log('文件类型:', file.type);
});
```
在上面的示例中,我们通过监听文件选择事件,获取到用户选择的文件。
然后,可以通过``、`file.size`和`file.type`等属性来获取文件的相关信息。
需要注意的是,这种方法只能获取到文件的相关信息,而无法获取到文件的绝对路径。
如果你需要对上传的文件进行处理,可以使用File API提供的方法来实现,如读取文件内容、上传文件等。
一.在JSP环境中利用Commons-fileupload组件实现文件上传1.页面upload.jsp清单如下:Java代码1.<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>2.3.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML4.01 Transitional//EN">4.<html>5. <head>6. <title>The FileUpload Demo</title>7. </head>8.9. <body>10. <form action="UploadFile" method="post" enctype="multipart/form-data">11. <p><input type="text" name="fileinfo" value="">文件介绍</p>12. <p><input type="file" name="myfile" value="阅读文件"></p>13. <p><input type="submit" value="上传"></p>14. </form>15. </body>16.</html>注意:在上传表单中,既有一般文本域也有文件上传域2.FileUplaodServlet.java清单如下:Java代码1.package org.chris.fileupload;2.3.import java.io.File;4.import java.io.IOException;5.import java.util.Iterator;6.import java.util.List;7.8.import javax.servlet.ServletException;9.import javax.servlet.http.*;10.11.import org.apachemons.fileupload.FileItem;12.import org.apachemons.fileupload.FileItemFactory;13.import org.apachemons.fileupload.disk.DiskFileItemFactory;14.import org.apachemons.fileupload.servlet.ServletFileUpload;15.16.public class FileUplaodServlet extends HttpServlet {17.18. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {19. doPost(request, response);20. }21.22. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {23.24. request.setCharacterEncoding("UTF-8");25.26. //文件的上传部份27. boolean isMultipart = ServletFileUpload.isMultipartContent(request);28.29. if(isMultipart)30. {31. try {32. FileItemFactory factory = new DiskFileItemFactory();33. ServletFileUpload fileload = new ServletFileUpload(factory);34.35.// 设置最大文件尺寸,那个地址是4MB36. fileload.setSizeMax(4194304);37. List<FileItem> files = fileload.parseRequest(request);38. Iterator<FileItem> iterator = files.iterator();39. while(iterator.hasNext())40. {41. FileItem item = iterator.next();42. if(item.isFormField())43. {44. String name = item.getFieldName();45. String value = item.getString();46. System.out.println("表单域名为: " + name + "值为: " + value);47. }else48. {49. //取得取得文件名,此文件名包括途径50. String filename = item.getName();51. if(filename != null)52. {53. File file = new File(filename);54. //若是此文件存在55. if(file.exists()){56. File filetoserver = new File("d:\\upload\\",file.getName());57. item.write(filetoserver);58. System.out.println("文件 " + filetoserver.getName() + " 上传成功!!");59. }60. }61. }62. }63. } catch (Exception e) {64. System.out.println(e.getStackTrace());65. }66. }67. }68.}3.web.xml清单如下:Java代码1.<?xml version="1.0" encoding="UTF-8"?>2.<web-app version="2.4"3. xmlns="java.sun/xml/ns/j2ee"4. xmlns:xsi="/2001/XMLSchema-instance"5. xsi:schemaLocation="java.sun/xml/ns/j2ee6. java.sun/xml/ns/j2ee/web-app_2_4.xsd">7.8. <servlet>9. <servlet-name>UploadFileServlet</servlet-name>10. <servlet-class>11. org.chris.fileupload.FileUplaodServlet12. </servlet-class>13. </servlet>14.15. <servlet-mapping>16. <servlet-name>UploadFileServlet</servlet-name>17. <url-pattern>/UploadFile</url-pattern>18. </servlet-mapping>19.20. <welcome-file-list>21. <welcome-file>/Index.jsp</welcome-file>22. </welcome-file-list>23.24.</web-app>二.在strut1.2中实现1.上传页面file.jsp 清单如下:Java代码1.<%@ page language="java" pageEncoding="ISO-8859-1"%>2.<%@ taglib uri="/struts/tags-bean" prefix="bean"%>3.<%@ taglib uri="/struts/tags-html" prefix="html"%>4.5.<html>6. <head>7. <title>JSP for FileForm form</title>8. </head>9. <body>10. <html:form action="/file" enctype="multipart/form-data">11. <html:file property="file1"></html:file>12. <html:submit/><html:cancel/>13. </html:form>14. </body>15.</html>2.FileAtion.java的清单如下:Java代码1./*2. * Generated by MyEclipse Struts3. * Template path: templates/java/JavaClass.vtl4. */5.package action;6.7.import java.io.*;8.9.import javax.servlet.http.HttpServletRequest;10.import javax.servlet.http.HttpServletResponse;11.import org.apache.struts.action.Action;12.import org.apache.struts.action.ActionForm;13.import org.apache.struts.action.ActionForward;14.import org.apache.struts.action.ActionMapping;15.import org.apache.struts.upload.FormFile;16.17.import form.FileForm;18.19./**20. * @author Chris21. * Creation date: 6-27-202022. *23. * XDoclet definition:24. * @struts.action path="/file" name="fileForm" input="/file.jsp"25. */26.public class FileAction extends Action {27. /*28. * Generated Methods29. */30.31. /**32. * Method execute33. * @param mapping34. * @param form35. * @param request36. * @param response37. * @return ActionForward38. */39. public ActionForward execute(ActionMapping mapping, ActionForm form,40. HttpServletRequest request, HttpServletResponse response) {41. FileForm fileForm = (FileForm) form;42. FormFile file1=fileForm.getFile1();43. if(file1!=null){44. //上传途径45. String dir=request.getSession(true).getServletContext().getRealPath("/upload");46. OutputStream fos=null;47. try {48. fos=new FileOutputStream(dir+"/"+file1.getFileName());49. fos.write(file1.getFileData(),0,file1.getFileSize());50. fos.flush();51. } catch (Exception e) {52. // TODO Auto-generated catch block53. e.printStackTrace();54. }finally{55. try{56. fos.close();57. }catch(Exception e){}58. }59. }60. //页面跳转61. return mapping.findForward("success");62. }63.}3.FileForm.java的清单如下:Java代码1.package form;2.3.import javax.servlet.http.HttpServletRequest;4.import org.apache.struts.action.ActionErrors;5.import org.apache.struts.action.ActionForm;6.import org.apache.struts.action.ActionMapping;7.import org.apache.struts.upload.FormFile;8.9./**10. * @author Chris11. * Creation date: 6-27-202012. *13. * XDoclet definition:14. * @struts.form name="fileForm"15. */16.public class FileForm extends ActionForm {17. /*18. * Generated Methods19. */20. private FormFile file1;21. /**22. * Method validate23. * @param mapping24. * @param request25. * @return ActionErrors26. */27. public ActionErrors validate(ActionMapping mapping,28. HttpServletRequest request) {29. // TODO Auto-generated method stub30. return null;31. }32.33. /**34. * Method reset35. * @param mapping36. * @param request37. */38. public void reset(ActionMapping mapping, HttpServletRequest request) {39. // TODO Auto-generated method stub40. }41.42. public FormFile getFile1() {43. return file1;44. }45.46. public void setFile1(FormFile file1) {47. this.file1 = file1;48. }49.}4.struts-config.xml的清单如下:Java代码1.<?xml version="1.0" encoding="UTF-8"?>2.<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "/d tds/struts-config_1_2.dtd">3.4.<struts-config>5. <data-sources />6. <form-beans >7. <form-bean name="fileForm" type="form.FileForm" />8.9. </form-beans>10.11. <global-exceptions />12. <global-forwards />13. <action-mappings >14. <action15. attribute="fileForm"16. input="/file.jsp"17. name="fileForm"18. path="/file"19. type="action.FileAction"20. validate="false">21. <forward name="success" path="/file.jsp"></forward>22. </action>23.24. </action-mappings>25.26. <message-resources parameter="ApplicationResources" />27.</struts-config>5.web.xml代码清单如下:Java代码1.<?xml version="1.0" encoding="UTF-8"?>2.<web-app xmlns="java.sun/xml/ns/j2ee" xmlns:xsi="w/2001/XMLSchema-instance" version="2.4" xsi:schemaLocatio n="java.sun/xml/ns/j2ee java.sun/xml/ns/j2ee/web-app_2_4.xsd">3. <servlet>4. <servlet-name>action</servlet-name>5. <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>6. <init-param>7. <param-name>config</param-name>8. <param-value>/WEB-INF/struts-config.xml</param-value>9. </init-param>10. <init-param>11. <param-name>debug</param-name>12. <param-value>3</param-value>13. </init-param>14. <init-param>15. <param-name>detail</param-name>16. <param-value>3</param-value>17. </init-param>18. <load-on-startup>0</load-on-startup>19. </servlet>20. <servlet-mapping>21. <servlet-name>action</servlet-name>22. <url-pattern>*.do</url-pattern>23. </servlet-mapping>24.</web-app>三.在struts2中实现(以图片上传为例)1.FileUpload.jsp代码清单如下:Java代码1.<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>2.<%@ taglib prefix="s" uri="/struts-tags" %>3.<html>4. <head>5. <title>The FileUplaodDemo In Struts2</title>6. </head>7.8. <body>9. <s:form action="fileUpload.action" method="POST" enctype="multipart/form-data">10. <s:file name="myFile" label="MyFile" ></s:file>11. <s:textfield name="caption" label="Caption"></s:textfield>12. <s:submit label="提交"></s:submit>13. </s:form>14. </body>15.</html>2.ShowUpload.jsp的功能清单如下:Java代码1.<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>2.<%@ taglib prefix="s" uri="/struts-tags" %>3.<html>4. <head>5. <title>ShowUpload</title>6. </head>7.8. <body>9. <div style ="padding: 3px; border: solid 1px #cccccc; text-align: center" >10. <img src ='UploadImages/<s:property value ="imageFileName"/> '/>11. <br />12. <s:property value ="caption"/>13. </div >14. </body>15.</html>3.FileUploadAction.java的代码清单如下:Java代码1.package com.chris;2.3.import java.io.*;4.import java.util.Date;5.6.import org.apache.struts2.ServletActionContext;7.8.9.import com.opensymphony.xwork2.ActionSupport;10.11.public class FileUploadAction extends ActionSupport{12.13. private static final long serialVersionUID = 572146812454l;14. private static final int BUFFER_SIZE = 16 * 1024 ;15.16. //注意,文件上传时<s:file/>同时与myFile,myFileContentType,myFileFileName绑定17. //因此同时要提供myFileContentType,myFileFileName的set方式18.19. private File myFile; //上传文件20. private String contentType;//上传文件类型21. private String fileName; //上传文件名22. private String imageFileName;23. private String caption;//文件说明,与页面属性绑定24.25. public void setMyFileContentType(String contentType) {26. System.out.println("contentType : " + contentType);27. this .contentType = contentType;28. }29.30. public void setMyFileFileName(String fileName) {31. System.out.println("FileName : " + fileName);32. this .fileName = fileName;33. }34.35. public void setMyFile(File myFile) {36. this .myFile = myFile;37. }38.39. public String getImageFileName() {40. return imageFileName;41. }42.43. public String getCaption() {44. return caption;45. }46.47. public void setCaption(String caption) {48. this .caption = caption;49. }50.51. private static void copy(File src, File dst) {52. try {53. InputStream in = null ;54. OutputStream out = null ;55. try {56. in = new BufferedInputStream( new FileInputStream(src), BUFFER_SIZE);57. out = new BufferedOutputStream( new FileOutputStream(dst), BUFFER_SIZE);58. byte [] buffer = new byte [BUFFER_SIZE];59. while (in.read(buffer) > 0 ) {60. out.write(buffer);61. }62. } finally {63. if ( null != in) {64. in.close();65. }66. if ( null != out) {67. out.close();68. }69. }70. } catch (Exception e) {71. e.printStackTrace();72. }73. }74.75. private static String getExtention(String fileName) {76. int pos = stIndexOf(".");77. return fileName.substring(pos);78. }79.80.@Override81. public String execute() {82. imageFileName = new Date().getTime() + getExtention(fileName);83. File imageFile = new File(ServletActionContext.getServletContext().getRealPath("/UploadImages" ) + "/" + imageFileN ame);84. copy(myFile, imageFile);85. return SUCCESS;86. }87.}注:现在仅为方便实现Action因此继承ActionSupport,并Overrider execute()方式在struts2中任何一个POJO都能够作为Action4.struts.xml清单如下:Java代码1.<?xml version="1.0" encoding="UTF-8" ?>2.<!DOCTYPE struts PUBLIC3. "-//Apache Software Foundation//DTD Struts Configuration2.0//EN"4. "/dtds/struts-2.0.dtd">5.<struts>6. <package name="example" namespace="/" extends="struts-default">7. <action name="fileUpload" class="com.chris.FileUploadAction">8. <interceptor-ref name="fileUploadStack"/>9. <result>/ShowUpload.jsp</result>10. </action>11. </package>12.</struts>5.web.xml清单如下:Java代码1.<?xml version="1.0" encoding="UTF-8"?>2.<web-app version="2.4"3. xmlns="java.sun/xml/ns/j2ee"4. xmlns:xsi="/2001/XMLSchema-instance"5. xsi:schemaLocation="java.sun/xml/ns/j2ee6. java.sun/xml/ns/j2ee/web-app_2_4.xsd">7. <filter >8. <filter-name > struts-cleanup </filter-name >9. <filter-class >10. org.apache.struts2.dispatcher.ActionContextCleanUp11. </filter-class >12. </filter >13. <filter-mapping >14. <filter-name > struts-cleanup </filter-name >15. <url-pattern > /* </url-pattern >16. </filter-mapping >17.18. <filter>19. <filter-name>struts2</filter-name>20. <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>21. </filter>22. <filter-mapping>23. <filter-name>struts2</filter-name>24. <url-pattern>/*</url-pattern>25. </filter-mapping>26. <welcome-file-list>27. <welcome-file>Index.jsp</welcome-file>28. </welcome-file-list>29.30.</web-app>。
一、元素上传文件返回的数据结构介绍在前端开发中,我们经常需要上传文件至服务器,并且在上传成功后获取服务器返回的数据进行进一步处理。
而对于element-ui这样的前端组件库而言,在使用其上传文件组件时,需要了解上传文件成功后返回的数据结构,以便正确处理上传文件的结果。
本文将详细介绍element上传文件返回的数据结构,帮助前端开发者更好地理解并使用该组件。
二、上传文件成功后返回的数据结构在使用element上传文件组件时,当文件上传成功后,服务器会返回一个包含上传文件信息的数据结构。
在element中,这个数据结构包括以下几个字段:1. 文件名(name):表示上传文件的原始文件名。
2. 文件位置区域(url):表示上传文件在服务器上的位置区域,可以通过该位置区域访问上传的文件。
3. 状态码(status):表示文件上传的状态,通常上传成功的状态码为200。
4. 消息(message):表示服务器返回的消息,通常包括上传成功或失败的提示信息。
三、处理上传文件返回的数据在前端开发中,我们通常需要根据上传文件返回的数据结构进行进一步处理,例如显示上传文件的位置区域、判断文件上传的状态等。
以下是一个处理上传文件返回数据的示例代码:```javascript<template><el-uploadaction="/upload":on-success="handleSuccess":on-error="handleError":show-file-list="false"><el-button slot="trigger" size="small" type="primary">点击上传</el-button></el-upload></template><script>export default {methods: {handleSuccess(response, file, fileList) {if (response.status === 200) {this.$message.success('文件上传成功');console.log('文件位置区域:', response.url);} else {this.$message.error('文件上传失败');}},handleError(err, file, fileList) {this.$message.error('文件上传失败');}}}</script>```四、结语通过本文的介绍,我们了解了element上传文件返回的数据结构,并学习了如何在前端代码中处理上传文件返回的数据。