`
liujinlong
  • 浏览: 24787 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java文件上传

阅读更多
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
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics