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-14testsession.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());}StringuploadOk= "\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>
页:
[1]