六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 49|回复: 0

Java 文件上传

[复制链接]

升级  75%

129

主题

129

主题

129

主题

举人

Rank: 3Rank: 3

积分
425
 楼主| 发表于 2013-1-15 02:41:48 | 显示全部楼层 |阅读模式
附件上传功能************************************************************************************************************************************************************************************************************表单元素中的   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());}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>
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表