JAVA中几种上传方法介绍、比较
代码版本管理方法

代码版本管理方法代码版本管理方法是指收集、保存、管理代码的技术手段。
它可以让程序员们在开发的过程中,通过对比保存的不同版本的代码,较好地进行回滚、修正、进展、合并等操作。
下面主要介绍几种代码版本管理方法。
一、版本控制系统1. 集中式版本控制系统(CVCS):集中式版本控制系统是一种以中心化的管理服务器(server)的形式存储代码,不同用户根据权限分别从服务器下载和上传代码的版本管理方式。
例如:CVS、Subversion (SVN)、Perforce、Team Foundation Server等。
2. 分布式版本控制系统(DVCS):分布式版本控制系统是一种以分散的节点形式每个人维护自己的版本库,通过一定规则收集不同节点的版本库,实现不同成员之间代码交流的版本控制管理系统。
例如:Git、Mercurial、Bazaar等。
二、程序比较方法1. 文件级比较:文件级比较就是比较两个文件的不同,通常可以使用“diff”或者“patch”等命令来实现。
2. 目录级比较:目录级比较就是比较两个或多个目录的文件及其子目录的不同,通常可以使用“diff -r”或“tree-cmp”等命令来实现。
3. 整段比较:整段比较就是比较两段文本块的不同,这些文本块通常可以是源代码的函数,可以使用比较工具(如:Compare It)等来实现。
三、代码编译1. 静态编译:静态编译就是将代码编译成可执行的文件,例如:C/C++程序的编译,通常可以使用“gcc”或“g++”等命令来实现。
2. 动态编译:动态编译就是把代码编译并在虚拟机(JVM)上运行,例如:java程序的编译,通常可以使用“javac”或“javac.exe”命令来实现。
四、其他方法1. 代码自动化:代码自动化是把繁琐的代码重复操作转换成自动执行的脚本程序,以节省程序员的工作。
例如:Shell、Python等。
2. 代码混淆:代码混淆是将程序源代码进行重命名、分解或其它混淆操作,以便为防止它的代码被人仿造或破解而进行的一种方法。
java sftp 常用方法

一、介绍随着信息化时代的到来,数据传输变得越来越重要。
在企业中,有时候需要通过网络将数据从一个服务器传输到另一个服务器。
而其中一种常用的数据传输协议就是SFTP(Secure File Transfer Protocol)。
SFTP是一种基于SSH协议的安全文件传输协议。
它提供了一种安全的通信渠道以及文件传输功能,能够有效地保护传输的数据安全。
在Java中,我们可以通过一些常用的方法来实现SFTP的文件传输,本文将介绍一些Java中SFTP常用的方法。
二、建立SFTP连接在Java中,我们可以使用JSch库来建立SFTP连接。
需要在项目中导入JSch库的jar包。
我们可以通过以下方法来建立SFTP连接:1. 创建JSch对象我们可以通过new JSch()来创建一个JSch对象,用于后续的SFTP连接。
2. 建立Session使用JSch对象的getSession方法建立一个Session对象,需要传入用户名、主机位置区域和端口号等参数,并通过setPassword或setPrivateKey方法设置认证方式。
3. 打开Channel在建立Session之后,可以通过Session对象的openChannel方法打开一个Channel,类型为" sftp"。
4. 建立SFTP连接使用ChannelSftp的connect方法来建立SFTP连接。
以上即为建立SFTP连接的步骤,通过这些方法,我们可以在Java中轻松地实现SFTP连接的功能。
三、上传文件一旦建立了SFTP连接,我们就可以进行文件的上传操作了。
通过以下方法可以实现文件的上传:1. 使用put方法在ChannelSftp对象中,可以使用put方法来上传文件。
需要传入本地文件路径和远程文件路径两个参数。
2. 设置传输模式在上传文件之前,可以通过ChannelSftp对象的setmode方法来设置传输模式,常用的传输模式包括OVERWRITE、RESUME等。
multipartfile 对象创建-概述说明以及解释

multipartfile 对象创建-概述说明以及解释1.引言1.1 概述概述在现代的软件系统中,文件上传与下载已经成为了一个非常常见的需求。
而在Java开发中,Spring框架提供的MultipartFile对象就是用于处理文件上传的重要工具之一。
MultipartFile对象是Spring提供的对文件上传的封装,它可以方便地获取上传文件的相关信息并进行处理。
MultipartFile对象的出现,简化了文件上传的流程,尤其是在处理多文件上传时,它提供了更加便捷的方法。
通过MultipartFile对象,我们可以轻松地获取到上传文件的文件名、大小、类型等属性,并且可以直接将上传的文件保存到指定位置。
本文将详细介绍MultipartFile对象的创建方法、属性和方法,并探讨其在系统中的重要性和应用场景。
同时,我们还将分析MultipartFile对象的创建对系统性能的影响,并展望对其进行优化和改进的方向。
无论是初学者还是有经验的开发人员,都可以通过本文对MultipartFile对象有一个全面的了解,并能够在实际项目中灵活运用。
文章结构部分的内容如下:1.2 文章结构本文共分为三个部分:引言、正文和结论。
引言部分从概述、文章结构和目的三个方面介绍了本文的内容和写作目的。
在概述部分,主要简要介绍了multipartfile对象的创建,作为整篇文章的研究主题。
在文章结构部分,给出了文章的整体结构以及每个部分要讨论的内容。
在目的部分,明确了本文的写作目的,即深入探讨multipartfile对象的创建方法、属性和方法,并对其重要性、应用场景以及对系统性能的影响进行分析和展望。
正文部分是本文的核心内容,主要分为三个小节:multipartfile对象的定义和作用、multipartfile对象的创建方法以及multipartfile对象的属性和方法。
在第一个小节中,详细解释了multipartfile对象的含义和作用,作为Java编程中处理上传文件的主要类型之一。
上传功能以二进制来判断文件后缀java

上传功能以二进制来判断文件后缀java一、介绍在计算机科学中,文件上传是一项常见的功能。
用户可以通过上传文件的方式将文件从本地计算机传输到服务器或其他网络设备上。
而在上传功能中,判断文件的后缀名是一个重要的步骤,它可以用来确定文件的类型和特性。
本文将介绍一种以二进制方式来判断文件后缀为java的方法。
二、二进制方式判断文件后缀在计算机中,文件是以二进制的形式存储的。
每个文件都有一个特定的文件头,文件头中包含了一些用来标识文件类型的信息。
通过读取文件头的内容,我们可以判断文件的类型和后缀。
2.1 文件头文件头是文件的开头部分,通常包含了一些固定的字节序列。
不同类型的文件有不同的文件头格式。
对于java文件来说,它的文件头通常是”CAFEBABE”(十六进制表示)。
2.2 读取文件头要判断一个文件是否为java文件,我们可以通过读取文件的前几个字节来获取文件头。
具体的步骤如下:1.打开待判断的文件。
2.读取文件的前几个字节(通常是4个字节)。
3.将读取到的字节转换为十六进制表示。
4.将十六进制表示与java文件的文件头”CAFEBABE”进行比较。
5.如果相等,则说明该文件是java文件;否则,说明该文件不是java文件。
2.3 示例代码下面是一个使用Java语言实现的示例代码,用来判断一个文件是否为java文件。
import java.io.FileInputStream;import java.io.IOException;public class JavaFileDetector {public static void main(String[] args) {String filePath = "path/to/your/file.java";boolean isJavaFile = isJavaFile(filePath);System.out.println("Is Java file: " + isJavaFile);}public static boolean isJavaFile(String filePath) {try (FileInputStream fis = new FileInputStream(filePath)) {byte[] buffer = new byte[4];int bytesRead = fis.read(buffer);if (bytesRead == 4) {String fileHeader = bytesToHex(buffer);return fileHeader.equals("CAFEBABE");}} catch (IOException e) {e.printStackTrace();}return false;}private static String bytesToHex(byte[] bytes) {StringBuilder sb = new StringBuilder();for (byte b : bytes) {sb.append(String.format("%02X", b));}return sb.toString();}}三、总结通过以二进制方式判断文件后缀,我们可以准确地判断一个文件是否为java文件。
JAVA中使用FTPClient实现文件上传下载实例代码

JAVA中使⽤FTPClient实现⽂件上传下载实例代码在java程序开发中,ftp⽤的⽐较多,经常打交道,⽐如说向FTP服务器上传⽂件、下载⽂件,本⽂给⼤家介绍如何利⽤jakarta commons中的FTPClient(在commons-net包中)实现上传下载⽂件。
⼀、上传⽂件原理就不介绍了,⼤家直接看代码吧/*** Description: 向FTP服务器上传⽂件* @Version1.0 Jul 27, 2008 4:31:09 PM by 崔红保(cuihongbao@)创建* @param url FTP服务器hostname* @param port FTP服务器端⼝* @param username FTP登录账号* @param password FTP登录密码* @param path FTP服务器保存⽬录* @param filename 上传到FTP服务器上的⽂件名* @param input 输⼊流* @return 成功返回true,否则返回false*/publicstaticboolean uploadFile(String url,int port,String username, String password, String path, String filename, InputStream input) {boolean success = false;FTPClient ftp = new FTPClient();try {int reply;ftp.connect(url, port);//连接FTP服务器//如果采⽤默认端⼝,可以使⽤ftp.connect(url)的⽅式直接连接FTP服务器ftp.login(username, password);//登录reply = ftp.getReplyCode();if (!FTPReply.isPositiveCompletion(reply)) {ftp.disconnect();return success;}ftp.changeWorkingDirectory(path);ftp.storeFile(filename, input);input.close();ftp.logout();success = true;} catch (IOException e) {e.printStackTrace();} finally {if (ftp.isConnected()) {try {ftp.disconnect();} catch (IOException ioe) {}}}return success;}<pre></pre>/*** Description: 向FTP服务器上传⽂件* @Version1.0 Jul 27, 2008 4:31:09 PM by 崔红保(cuihongbao@)创建* @param url FTP服务器hostname* @param port FTP服务器端⼝* @param username FTP登录账号* @param password FTP登录密码* @param path FTP服务器保存⽬录* @param filename 上传到FTP服务器上的⽂件名* @param input 输⼊流* @return 成功返回true,否则返回false*/public static boolean uploadFile(String url,int port,String username, String password, String path, String filename, InputStream input) {boolean success = false;FTPClient ftp = new FTPClient();try {int reply;ftp.connect(url, port);//连接FTP服务器//如果采⽤默认端⼝,可以使⽤ftp.connect(url)的⽅式直接连接FTP服务器ftp.login(username, password);//登录reply = ftp.getReplyCode();if (!FTPReply.isPositiveCompletion(reply)) {ftp.disconnect();return success;}ftp.changeWorkingDirectory(path);ftp.storeFile(filename, input);input.close();ftp.logout();success = true;} catch (IOException e) {e.printStackTrace();} finally {if (ftp.isConnected()) {try {ftp.disconnect();} catch (IOException ioe) {}}}return success;}下⾯我们写两个⼩例⼦:1.将本地⽂件上传到FTP服务器上,代码如下:@Testpublicvoid testUpLoadFromDisk(){try {FileInputStream in=new FileInputStream(new File("D:/test.txt"));boolean flag = uploadFile("127.0.0.1", 21, "test", "test", "D:/ftp", "test.txt", in); System.out.println(flag);} catch (FileNotFoundException e) {e.printStackTrace();}}<pre></pre>@Testpublic void testUpLoadFromDisk(){try {FileInputStream in=new FileInputStream(new File("D:/test.txt"));boolean flag = uploadFile("127.0.0.1", 21, "test", "test", "D:/ftp", "test.txt", in); System.out.println(flag);} catch (FileNotFoundException e) {e.printStackTrace();}}2.在FTP服务器上⽣成⼀个⽂件,并将⼀个字符串写⼊到该⽂件中@Testpublicvoid testUpLoadFromString(){try {InputStream input = new ByteArrayInputStream("test ftp".getBytes("utf-8")); boolean flag = uploadFile("127.0.0.1", 21, "test", "test", "D:/ftp", "test.txt", input); System.out.println(flag);} catch (UnsupportedEncodingException e) {e.printStackTrace();}}<pre></pre>@Testpublic void testUpLoadFromString(){try {InputStream input = new ByteArrayInputStream("test ftp".getBytes("utf-8")); boolean flag = uploadFile("127.0.0.1", 21, "test", "test", "D:/ftp", "test.txt", input); System.out.println(flag);} catch (UnsupportedEncodingException e) {e.printStackTrace();}}⼆、下载⽂件从FTP服务器下载⽂件的代码也很简单,参考如下:/*** Description: 从FTP服务器下载⽂件* @Version. Jul , :: PM by 崔红保(cuihongbao@)创建* @param url FTP服务器hostname* @param port FTP服务器端⼝* @param username FTP登录账号* @param password FTP登录密码* @param remotePath FTP服务器上的相对路径* @param fileName 要下载的⽂件名* @param localPath 下载后保存到本地的路径* @return*/publicstaticboolean downFile(String url, int port,String username, String password, String remotePath,String fileName,String localPath) { boolean success = false;FTPClient ftp = new FTPClient();try {int reply;ftp.connect(url, port);//如果采⽤默认端⼝,可以使⽤ftp.connect(url)的⽅式直接连接FTP服务器ftp.login(username, password);//登录reply = ftp.getReplyCode();if (!FTPReply.isPositiveCompletion(reply)) {ftp.disconnect();return success;}ftp.changeWorkingDirectory(remotePath);//转移到FTP服务器⽬录FTPFile[] fs = ftp.listFiles();for(FTPFile ff:fs){if(ff.getName().equals(fileName)){File localFile = new File(localPath+"/"+ff.getName());OutputStream is = new FileOutputStream(localFile);ftp.retrieveFile(ff.getName(), is);is.close();}}ftp.logout();success = true;} catch (IOException e) {e.printStackTrace();} finally {if (ftp.isConnected()) {try {ftp.disconnect();} catch (IOException ioe) {}}}return success;}<pre></pre>。
java 不同系统之间传输数据的方法

java 不同系统之间传输数据的方法Java是一种强大且广泛应用的编程语言,用于开发各种类型的应用程序。
在实际开发中,经常需要在不同的系统之间传输数据。
本文将介绍一些常用的方法来实现Java不同系统之间的数据传输。
1. 使用Socket通信Socket通信是一种常用的网络通信方式,可以实现不同系统之间的数据传输。
通过Socket,我们可以在客户端和服务器之间建立一条双向通道进行数据交换。
在Java中,可以使用Java的原生Socket库来实现Socket通信。
客户端和服务器端通过准确的IP地址和端口号来建立连接。
客户端可以使用Socket类来与服务器进行通信,而服务器则使用ServerSocket类监听并接受客户端连接。
2. 使用HTTP协议HTTP协议是一种应用层协议,常用于Web应用程序中。
通过HTTP协议,不同系统之间可以通过发送和接收HTTP请求和响应来进行数据传输。
在Java中,可以使用Java的HttpURLConnection类或者第三方库,如Apache 的HttpClient来实现HTTP通信。
通过发送HTTP请求,可以将数据以请求参数或JSON/XML等格式发送到目标系统,并接收目标系统的HTTP响应。
3. 使用WebServiceWebService是一种通过网络进行通信的软件系统。
它可以使不同系统之间的应用程序通过Web服务接口进行数据传输和交互。
在Java中,可以使用Java的JAX-WS和JAX-RPC等API来开发和使用WebService。
通过定义WebService接口和实现相应的服务端和客户端,可以在不同系统之间轻松地传输数据。
4. 使用消息队列消息队列是一种常用的异步通信方式,允许不同系统之间以消息的形式传递数据。
消息队列将数据发送方发送的消息存储在队列中,接收方从队列中接收并处理消息。
在Java中,可以使用ActiveMQ、RabbitMQ等消息中间件来实现消息队列。
Java实现一个简单的文件上传案例示例代码

Java实现⼀个简单的⽂件上传案例⽰例代码Java实现⼀个简单的⽂件上传案例实现流程:1.客户端从硬盘读取⽂件数据到程序中2.客户端输出流,写出⽂件到服务端3.服务端输出流,读取⽂件数据到服务端中4.输出流,写出⽂件数据到服务器硬盘中下⾯上代码上传单个⽂件服务器端package FileUpload;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import .ServerSocket;import .Socket;public class Server {public static void main(String[] args) throws IOException {System.out.println("服务器端启动");//创建⼀个服务器端对象ServerSocket serverSocket = new ServerSocket(8888);//使⽤accept获取socket对象Socket accept = serverSocket.accept();//使⽤字节输⼊流读取InputStream inputStream = accept.getInputStream();//创建⼀个字节输出流输出到本地FileOutputStream fileOutputStream = new FileOutputStream("F:\\this\\copy1.jpg",true);//创建⼀个数组循环读取byte[] bytes = new byte[1024];int len;while ((len=inputStream.read(bytes))!=-1){fileOutputStream.write(bytes,0,len);}System.out.println("执⾏完毕");fileOutputStream.close();inputStream.close();}}客户端package FileUpload;import java.io.FileInputStream;import java.io.IOException;import java.io.OutputStream;import .Socket;public class Client {public static void main(String[] args) throws IOException {//创建⼀个Socket对象Socket socket = new Socket("127.0.0.1", 8888);//读取本地⽂件FileInputStream fileInputStream = new FileInputStream("F:\\1.jpeg");//获取输出流向服务器写⼊数据OutputStream outputStream = socket.getOutputStream();//创建数组读取byte[] bytes = new byte[1024];int len;//边都边写while((len=fileInputStream.read(bytes))!=-1){outputStream.write(bytes,0,len);outputStream.flush();}//由于不会写⼊-1所以调⽤socket的shutdownOutput⽅法把前⾯的数据都写⼊并且正常终⽌后⾯的序列 socket.shutdownOutput();System.out.println("⽂件发送完毕");fileInputStream.close();outputStream.close();socket.close();}}循环上传客户端代码package FileUpload;import java.io.FileInputStream;import java.io.IOException;import java.io.OutputStream;import .Socket;public class Client {public static void main(String[] args) throws IOException {//创建⼀个Socket对象Socket socket = new Socket("127.0.0.1", 8888);//读取本地⽂件FileInputStream fileInputStream = new FileInputStream("F:\\1.jpeg");//获取输出流向服务器写⼊数据OutputStream outputStream = socket.getOutputStream();//创建数组读取byte[] bytes = new byte[1024];int len;//边都边写while((len=fileInputStream.read(bytes))!=-1){outputStream.write(bytes,0,len);outputStream.flush();}//由于不会写⼊-1所以调⽤socket的shutdownOutput⽅法把前⾯的数据都写⼊并且正常终⽌后⾯的序列 socket.shutdownOutput();System.out.println("⽂件发送完毕");fileInputStream.close();outputStream.close();socket.close();}}服务器端代码package FileUpload;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import .ServerSocket;import .Socket;public class Server {public static void main(String[] args) throws IOException {System.out.println("服务器端启动");//创建⼀个服务器端对象ServerSocket serverSocket = new ServerSocket(8888);//使⽤while()持续写⼊数据while(true){//使⽤accept获取socket对象Socket accept = serverSocket.accept();//Socket对象交给⼦线程处理,进⾏读写操作,new Thread(() ->{{//使⽤字节输⼊流读取InputStream inputStream = null;try {//⽂件名String name = new String("F:\\this\\"+ System.currentTimeMillis()+"copy1.jpg" );inputStream = accept.getInputStream();//创建⼀个字节输出流输出到本地FileOutputStream fileOutputStream = new FileOutputStream(name,true);//创建⼀个数组循环读取byte[] bytes = new byte[1024];int len;while ((len=inputStream.read(bytes))!=-1){fileOutputStream.write(bytes,0,len);}System.out.println("执⾏完毕");fileOutputStream.close();inputStream.close();} catch (IOException e) {e.printStackTrace();}}}).start();}}}循环输⼊⽆⾮就是增加了⼀个while循环与⼀点多线程的知识,以上就是⼀个⽂件上传的⼀个简单案例,到此这篇关于Java实现⼀个简单的⽂件上传案例⽰例代码的⽂章就介绍到这了,更多相关Java实现⽂件上传案例内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
fileitem 说明

Java Web开发人员可以使用Apache文件上传组件来接收浏览器上传的文件,该组件由多个类共同组成,但是,对于使用该组件来编写文件上传功能的Java Web 开发人员来说,只需要了解和使用其中的三个类:DiskFileUpload、FileItem和FileUploadException。
这三个类全部位于mons.fileupload 包中。
查看API文档在准备实验环境时获得的commons-fileupload-1.0.zip文件的解压缩目录中可以看到一个docs的子目录,其中包含了Apache文件上传组件中的各个API类的帮助文档,从这个文档中可以了解到各个API类的使用帮助信息。
打开文件上传组件API帮助文档中的index.html页面,在左侧分栏窗口页面中列出了文件上传组件中的各个API类的名称,在右侧分栏窗口页面的底部列出了一段示例代码,如图1.2所示。
图1.2读者不需要逐个去阅读图1.2中列出的各个API类的帮助文档,而应该以图1.2中的示例代码为线索,以其中所使用到的类为入口点,按图索骥地进行阅读,对于示例代码中调用到的各个API类的方法则应重点掌握。
1. DiskFileUpload类DiskFileUpload类是Apache文件上传组件的核心类,应用程序开发人员通过这个类来与Apache文件上传组件进行交互。
但现在Apache建议使用ServletFileUpload类,两个类的方法类似。
下面介绍DiskFileUpload类中的几个常用的重要方法。
1.1.setSizeMax方法setSizeMax方法用于设置请求消息实体内容的最大允许大小,以防止客户端故意通过上传特大的文件来塞满服务器端的存储空间,单位为字节。
其完整语法定义如下:public void setSizeMax(long sizeMax)如果请求消息中的实体内容的大小超过了setSizeMax方法的设置值,该方法将会抛出FileUploadException异常。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
java中几种上传方法介绍、比较
1引言
一个网站总是不可避免的要和用户进行信息的交互,能直接使用
request.getParameter()来取得。
至于所使用的方法有很多种,比如:jspsmart 公司的jspsmartupload组件,O`Rrilly公司的cos组件,Jakarta Apache公司的commonsFileUpload组件,JavaZoom的uploadbean组件,还有Struts组件中自带的org.apache.struts.upload类工具等等。
下面就针对其中的三种解决方案(jspsmartupload、O`Reilly-cos、struts.upload)做一个简单的介绍和对比。
2O`Rrilly-Cos
Cos组件是O`Rrilly公司开发的,该组件免费,不定期增加新功能,开源。
图1O`Rrilly-Cos
在Cos组件中,MultipartRequest类主要负责文件上传的处理。
MultipartRequest有8个构造函数:
1.Public MultipartRequest(HttpServletRequest request,String saveDirectory,)throws IOException
2.Public MultipartRequest(HttpServletRequest request,String saveDirectory,int maxPostSize)throws IOException
3.Public MultipartRequest(HttpServletRequest request,String saveDirectory,int maxPostSize,FileRenamePolicy policy)throws IOException倘若是从窗体传送一般的简单输入类型(例如:text、password、radio、checkbox、select等等)的信息到服务器端时,只要使用
application/x-www-form-urlencoded的编码方式用session传递就可以了。
但是当涉及到和用户之间的文件交换(包括上传和下载)时,就不是那么简单了。
在上传文件到服务器时,必须要使用multipart/form-data的编码方式,并且不
4.Public MultipartRequest(HttpServletRequest request,String saveDirectory,int maxPostSize,String encoding)throws IOException
5.Public MultipartRequest(HttpServletRequest request,String saveDirectory,int maxPostSize,String encoding,FileRenamePolicy policy) throws IOException
6.Public MultipartRequest(HttpServletRequest request,String saveDirectory,String encoding)throws IOException
7.Public MultipartRequest(HttpServletRequest request,String saveDirectory)throws IOException
8.Public MultipartRequest(HttpServletRequest request,String saveDirectory,int maxPostSize)throws IOException
前6种构造函数都是用来专门处理HTTP协议的,saveDirectory是上传文
件要存储在服务器端的目录名称;maxPostSize是用来限制用户上传文件大小的,若超过maxPostSzie,会产生IOException,默认上传文件大小是1MB;encoding 可以设定用何种编码方式来上传文件名称,可以解决中文问题。
MultipartRequest类工具有8种方法,利用这些方法,我们可以取得请求
的相关信息:
Public Enumeration getParameterNames()
可以取得请求参数的名称
public String getParameter(String name)
此方法传回参数为name的值
public String[]getParameterValues(String name)
此方法主要用在取得当一指定参数具有多个值时,它会传回String的数组public Enumeration getFileName()
传回所有文件输入类型的名称
public String getFilesystemNames(String name)
用此方法得到上传文件的真正的文件名,这里的name指文件输入类型的名称
public String getContentType(String name)
此方法得到上传文件的内容类型
public File getFile(String name)
此方法得到一个文件对象,代表储存在服务器上的name文件
public String getOriginalFileName(String name)
返回文件在修改政策有效之前的文件名
3jspsmartUpload
Jspsmartupload组件是由jspsmart公司开发的,安装好它的组件以后,就可以处理文件上传及下载的问题。
该组件简单好用,免费,但是源码不公开。
Jspsmartupload Overview:
Free免费的
upload1or more files to the server可上传1个或多个文件
upload to a database上传文件到数据库
control the upload file by file可以一列一列的(一个个)控制上传manage mixed forms files+form fields可以管理表格文件和表格域download a file可以实现文件下载
download a database field可以从数据库中下载
restrict file size,extension etc可以限制上传文件的尺寸和类型MacBinary support MckBinary的支持
Platform:Apache,NT,Unix,Linux,IIS可以在多种平台上运行
Database:MySQL,Oracle……支持多种数据库(最支持MySQL)
整个jspsmartupload压缩包113K,包括有范例、API说明和编译好的class 文件,调用这些class文件就可以实习文件的上传下载功能。
图2jspsmartUpoad
Jspsmartupload能实现比O`Rrilly-Cos更多的方法,比如有:
1.public int getSize()方法得到上传文件大小的总和
2.public void setDeniedFilesList(String deniedFilesList)方法设定
用户不可上传的类型
3.public void setAllowedFilesList(String allowedFilesList)方法设
定用户可上传的文件类型
4.public void setTotalMaxFileSize(Long totalMaxFilesList)设定一次
上传文件大小总和
5.public int getCount()得到Files中的文件个数
6.public Boolean isMissing()测试文件是否确实已经存在
7.public String getFieldName()得到此File在前一个HTML文件中的表格名称
8.public String getFilePathName()得到此File在上传端的文件位置
9.public String getFileExt()得到文件的扩展名
………….。