`
chengyu2099
  • 浏览: 466557 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Java 文件上传

阅读更多
附件上传功能
******************************************************************************************************
******************************************************************************************************
表单元素中的   enctype   属性规定了传递给服务器的表数据集编码的内容类型。enctype   属性的默认值是
“application/x-www-form-urlencoded”,但当向服务器传送大量文本、包含非ASCII字符或二进制数的数据时,这个默认类型就不能胜
任hq了。这时,文件上载提交表单时应使用“multipart/form-data”内容类型。

FORM表单

<form name="hiddenFrm" method="POST" action="uploadTechnicianDo.jsp" enctype="multipart/form-data">
	<table width="98%" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#FFFFFF">
		<tr>
			<td height="40" background="images/bg04e.gif" bgcolor="#BDDBEE">
			   <table width="98%" border="0" align="center" cellpadding="0" cellspacing="0">
				<tr>
				 <td> 请核查前上传企业技术及管理人员表:
				   <input type="FILE" name="FILE1" size="30">
				  <input type="submit" name="Submit" value="上传" >
				</td>
				</tr>
			</table>
			</td>
		</tr>
	</table>
</form>

action="uploadTechnicianDo.jsp"代码

<%@ page contentType="text/html; charset=gbk" language="java" import="com.jspsmart.upload.*,java.util.*" %>
<html>
<head>
<title>文件上传处理页面</title>
</head>
<body>
<form name="TechnicianFrm" >
<%

//服务器的图片\试卷保存路径
String path="";
try
{
	String separator = null;
	java.util.Properties p = new Properties(System.getProperties());
	String osName =  p.getProperty("os.name");

	java.io.File upfile=new java.io.File("upload");

	if(osName.indexOf("Win")!=-1)
	{
	    separator = "\\";
	    if(!(upfile.isDirectory()))
		{
	      	upfile.mkdirs();

		}

	  	path = "upload\\";
	}
	 else if(osName.indexOf("AIX")!=-1)
	{
	    separator = "/";
	    if(!(upfile.isDirectory()))
	    {
	    	upfile.mkdirs();

	    }
	    path="upload/";
	}
	System.out.println("FilePath: "+upfile.getAbsolutePath());//2007-12-14test
	session.setAttribute("FilePath",upfile.getAbsolutePath());

	if(separator==null)
	{
	    return;
	}
	// 新建一个SmartUpload对象
	SmartUpload su = new SmartUpload();
	// 上传初始化
		//out.println("TEST="+su.getRequest().getParameter("TEST")
	su.initialize(pageContext);
	su.upload();

	// 将上传文件全部保存到指定目录
	int count = su.save(path);

	//out.println(count+"个文件上传成功!<br>");

	for (int i=0;i<su.getFiles().getCount();i++)
	{
		com.jspsmart.upload.File file = su.getFiles().getFile(i);

		// 若文件不存在则继续
		if (file.isMissing()) continue;
		session.setAttribute("FileName",file.getFileName());
	}
	String  uploadOk= "\n<Script language=\"javaScript\"> alert('上传成功!');</Script>";
	session.setAttribute("uploadOk",uploadOk);
	response.sendRedirect("importTest.jsp");
}
catch(Exception err)
{
	err.printStackTrace();
}

%>
</form>
</body>
</html>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
以下是使用的一个实例. 具体方法都可以从commons-fileupload的API文件中找到,不再多说..


上传页面;

up.jsp

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body>
<form action="up1.jsp" method="post" enctype="multipart/form-data" name="form1">
  <input name="thisfile" type="file" id="thisfile">
  <input name="user" type="text" id="user" size="10">
  <input type="submit" name="Submit" value="Submit">
</form>
</body>
</html>

后端处理页面

up1.jsp

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="org.apache.commons.fileupload.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body>
<% 
   try{
        String dir=request.getRealPath(".");
        DiskFileUpload fu = new DiskFileUpload();
        
        fu.setSizeMax(4194304);                 //设置文件大小.

        fu.setSizeThreshold(4096);              //设置缓冲大小.

        fu.setRepositoryPath(dir+"/test");      //设置临时目录.
  
 List fileItems = fu.parseRequest(request);   //解析请求,返回一个集合.
        
        Iterator i = fileItems.iterator();

        while(i.hasNext()) 
     {
     
            FileItem fi = (FileItem)i.next();
   
    if(fi.isFormField())                        //这是用来确定是否为文件属性, 
     {

                        String fieldName = fi.getFieldName();     //这里取得表单名
   String fieldvalue=fi.getString();         //这里取得表单值

   out.print("<br>");
   out.print("name:"+fieldName);
                        out.print("value:"+fieldvalue);
                   }
     else                                           //这里开始外理文件
     {
                       String fileName = fi.getName();            // 返回文件名包括客户机路径
                       if(fileName!=null) 
      {
        out.print(fileName);
        out.print("<br>"+fi.getFieldName());  // 打印文件表单名
          
                             fi.write(new File(dir+"/test/a.jpg"));     // 写文件到服务器.
      }
    }
            }
   }
  catch(Exception e)
   {}

 %>

</body>
</html>
分享到:
评论

相关推荐

    性能最好的Java文件上传组件

    "性能最好的Java文件上传组件"是指一种优化了上传速度和资源消耗的工具,它能够有效地处理大文件上传、多文件并发上传等问题,提高应用的用户体验。在这个场景中,我们提到了基于"COS"的Java文件上传组件。COS通常指...

    java文件上传程序

    Java 文件上传程序 Java 文件上传程序是指使用 Java 语言编写的文件上传程序,负责接收和处理客户端上传的文件。以下是 Java 文件上传程序的相关知识点: 1. 服务器端编程:Java 文件上传程序的服务器端使用 Java ...

    java文件上传和下载

    ### Java文件上传与下载知识点详解 #### 一、文件操作基础 在Java 7及其后续版本中,提供了更加强大且简洁的文件处理API。这些API主要包括`java.nio.file`包下的`Paths`, `Files`, 和`Path`等类。 ##### 1.1 常用...

    java文件上传组件包

    "java文件上传组件包"正是这样一套工具集,旨在简化Java开发中的文件上传流程。 在Java中处理文件上传,主要涉及以下知识点: 1. **Servlet API**:在服务器端,Servlet API是处理HTTP请求的基础。`javax.servlet....

    java文件上传方法

    ### Java文件上传方法详解 在Java开发中,文件上传是一个非常常见的需求,尤其是在Web应用程序中。本文将基于提供的代码片段,详细介绍如何使用Java实现文件上传功能,并解释代码中的关键部分。 #### 一、代码结构...

    java文件上传dome

    本示例("java文件上传dome")聚焦于使用Tomcat中的Servlet和Apache Commons FileUpload库来实现这一功能。以下是这个示例中涉及的关键知识点: 1. **Servlet**: Servlet是Java EE中用于扩展服务器功能的Java类。...

    彻底搞定java文件上传.txt

    ### 彻底搞定Java文件上传:jspsmartupload、commonupload与orellay对比解析 在Java开发领域中,文件上传一直是备受关注的功能之一。针对这一需求,开发者们通常会选用几种较为流行的库来实现这一功能,其中包括较...

    java文件上传例子

    在Java编程中,文件上传是一项常见的任务,尤其在开发Web应用程序...通过这个简单的Java文件上传例子,开发者可以学习如何在实际项目中实现文件上传功能,并理解相关的技术细节。这有助于提升Web应用的交互性和功能性。

    Java文件上传

    首先,Java文件上传通常涉及到Servlet和HTTP协议。Servlet是Java中用于处理HTTP请求的服务器端组件,它接收来自客户端(通常是Web浏览器)的请求,并返回响应。在文件上传场景下,Servlet会接收包含上传文件数据的...

    java文件上传ar包

    总结来说,Java文件上传AR包涉及到使用Servlet API、Apache Commons FileUpload和IO库来处理多部分请求,解析上传的文件,存储到服务器,并确保整个过程的安全性和性能。在实际开发中,这些知识点是构建高效、安全...

    flex+java文件上传

    Flex和Java文件上传技术是Web应用中常见的功能,主要用于用户在网页端上传本地文件到服务器。Flex是一款由Adobe公司开发的开源框架,主要用于构建富互联网应用程序(Rich Internet Applications,RIA)。它基于...

    jquery uploadify java文件上传

    **jQuery Uploadify与Java文件上传** 在Web开发中,文件上传功能是不可或缺的一部分。`jQuery Uploadify`是一款基于JavaScript和jQuery的插件,它提供了一种优雅的方式来进行多文件上传,具有良好的用户体验和丰富...

    Java文件上传并自动解压

    1. **Java文件上传** - **Servlet API**:Java Servlet API提供了处理HTTP请求的能力,包括文件上传。在SpringMVC中,我们通常使用`@RequestParam`注解来接收上传的文件。 - **Commons FileUpload**:Apache ...

    基于JAVA文件上传

    在Java编程语言中,文件上传是一项常见的功能,广泛应用于各种Web应用中,如社交媒体平台、云存储服务等。实现基于Java的文件上传涉及到多个技术点,包括Servlet、HTTP协议、多部分请求(Multipart Request)以及...

    java 文件上传工具类 文件及文本数据

    以上是关于Java文件上传工具类处理文件及文本数据的主要知识点。理解并熟练掌握这些概念,可以帮助开发者创建高效、安全的文件上传系统。在实际开发中,还需要根据具体需求和项目规范来定制和扩展这些基础功能。

    java文件上传下载工具类

    以下是对"java文件上传下载工具类"这一主题的详细解释。 首先,让我们了解文件上传。在Web应用中,用户可能需要上传文件,如图片、文档或视频。Java通过Servlet API提供了处理文件上传的功能。Servlet 3.0及以上...

    java文件上传,Struts2文件上传,demo下载

    Java文件上传是Web开发中常见的功能,特别是在处理用户提交的图片、文档等数据时。Struts2是一个基于MVC设计模式的Java Web框架,它提供了一套完整的文件上传解决方案。在Struts2中,文件上传功能是通过Struts2的...

    java文件上传java文件上传java文件上传

    综上所述,Java文件上传涉及的方面众多,包括协议理解、API使用、错误处理、安全控制等多个环节。无论是在传统的Servlet中,还是在现代的Spring框架下,都能找到成熟且强大的解决方案。在实际开发中,根据项目需求...

    java文件上传的用到的jar包

    "java文件上传的用到的jar包"就是这样一个集合,它包含了实现文件上传功能所需的各种组件。 1. **Apache Commons FileUpload**:这是最常用的文件上传库之一,提供了处理HTTP请求中的多部分数据(multipart/form-...

    java文件上传源码

    总的来说,这个源码包提供了从客户端文件选择、HTTP上传、服务器端接收、文件保存到服务器的完整流程,是学习和理解Java文件上传功能的好例子。通过深入研究和实践,开发者可以掌握文件上传这一核心的Web开发技能。

Global site tag (gtag.js) - Google Analytics