六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 92|回复: 0

java文件上传

[复制链接]

升级  70%

7

主题

7

主题

7

主题

童生

Rank: 1

积分
35
 楼主| 发表于 2013-2-7 19:25:50 | 显示全部楼层 |阅读模式
html内容
<center>   
    <h1>文件上传</h1>   
    <form name="uploadform"method="post" action="adddata" ENCTYPE="multipart/form-data">   
        <table border="1"width="450"cellpadding="4" cellspacing="2"bordercolor="#9BD7FF">   
            <tr><td width="100%"colspan="2">   
                    请选择文件:<input name="file1"size="40"type="file">   
            </td></tr>   
        </table>   
        <table>   
            <tr><td align="center"><input name="upload" type="submit"value="开始上传"/></td></tr>   
        </table>   
    </form>   
</center>  

web.xml的配置内容:
<servlet>  
    <servlet-name>data</servlet-name>  
    <servlet-class>kxjh.AddDataServlet</servlet-class>  
</servlet>  
<servlet-mapping>  
    <servlet-name>data</servlet-name>  
    <url-pattern>/adddata</url-pattern>  
</servlet-mapping>

Java代码实现上传:
// 解析 request,判断是否有上传文件   
boolean isMultipart = ServletFileUpload.isMultipartContent(request);   
if (isMultipart) {   
    // 创建磁盘工厂,利用构造器实现内存数据储存量和临时储存路径   
     DiskFileItemFactory factory = new DiskFileItemFactory(1024 * 4, new File("D:\\Temp"));   
    // 设置最多只允许在内存中存储的数据,单位:字节   
    // factory.setSizeThreshold(4096);   
    // 设置文件临时存储路径   
    // factory.setRepository(new File("D:\\Temp"));   
    // 产生一新的文件上传处理程式   
     ServletFileUpload upload = new ServletFileUpload(factory);   
     // 设置路径、文件名的字符集   
    upload.setHeaderEncoding("UTF-8");   
    // 设置允许用户上传文件大小,单位:字节   
    upload.setSizeMax(1024 * 1024 * 100);   
    // 解析请求,开始读取数据   
    // Iterator<FileItem> iter = (Iterator<FileItem>) upload.getItemIterator(request);   
    // 得到所有的表单域,它们目前都被当作FileItem   
     List<FileItem> fileItems = upload.parseRequest(request);   
    // 依次处理请求   
     Iterator<FileItem> iter = fileItems.iterator();   
    while (iter.hasNext()) {   
        FileItem item = (FileItem) iter.next();   
        if (item.isFormField()) {   
            // 如果item是正常的表单域   
            String name = item.getFieldName();   
            String value = item.getString("UTF-8");   
            System.out.println("表单域名为:"+name+"表单域值为:"+value);   
        } else {   
            // 如果item是文件上传表单域   
            // 获得文件名及路径   
            String fileName = item.getName();   
            if (fileName != null) {   
                // 如果文件存在则上传   
                File fullFile = new File(item.getName());   
                if (fullFile.exists()) {   
                    File fileOnServer = new File("D:\\My Documents\\" + fullFile.getName());   
                    item.write(fileOnServer);   
                    System.out.println("文件" + fileOnServer.getName() + "上传成功");   
                }   
            }   
        }   
    }   
}  
利用ccommons-fileupload-1.2.1实现上传,其实现必须包含commons-io-1.4
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

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