`

zk fileupload

    博客分类:
  • Ajax
阅读更多
可以限制文件大小,类型,支持中文,多文件上传,并且可以存到指定目录
直接上代码,有问题直接提

<?xml version="1.0" encoding="GBK"?>
<window>
    <label value="test"></label>
    <button label="upload">
         <attribute name="onClick">
             <![CDATA[
             import org.zkoss.zk.ui.util.Configuration;
             import java.io.*;
             import org.zkoss.io.Files;
 
             Desktop desktop = self.getDesktop();
             Configuration conf = desktop.getWebApp().getConfiguration();
             conf.setMaxUploadSize(1024);
            //解决中文问题,如果上传的文件中有中文
            conf.setUploadCharset("gbk");
            //如果文本文件的话,返回的实际是AMedia类型
            Object media = Fileupload.get();

            //多文件

            //Object[] mediaArray = Fileupload.get(5);
            if(media!=null){
                 String fileName =  media.getName();
                 if(!fileName.endsWith(".txt")){
                       alert("not a txt file");

                       return;
                 }
   
           /**
            * 用Reader的方式,实际是StringReader
             */
   
              Reader r = media.getReaderData();
              File f = new File("c:\\temp\\"+fileName);
   
               /*
               //可以获得相对路径
                 File f = new File(Executions.getCurrent().getDesktop().getWebApp().getRealPath("medias") + "/"+ media.getName());
               */
   
                 if(!f.exists()){
                        f.createNewFile();
                 }
               

                //Files类是由ZK提供的
                Files.copy(f,r,null);
                Files.close(r);
   
                /*
                  //用InputStream的实现方式
                  InputStream ins = new ByteArrayInputStream(media.getStringData().getBytes());
                  File f = new File("c:\\temp\\"+fileName);
                  if(!f.exists()){
                         f.createNewFile();
                   }
                  OutputStream out = new FileOutputStream(f);
                   byte[] buf=new byte[1024];
                    int len;
                   while((len=ins.read(buf))>0){
                   out.write(buf,0,len);
            }
            out.close();
            ins.close();
    
              */
               alert("file created");

           }
          //alert(media.getStringData().length());
          //alert(media.getName());
  
      ]]>
      </attribute>
   </button>
   <vbox id="file">
    </vbox>

</window>

 

<window title="Fileupload Demo" border="normal">
    <image id="image"/>
    <button label="Upload">
        <attribute name="onClick">{
            Object media = Fileupload.get();
            if (media instanceof org.zkoss.image.Image)
                image.setContent(media);
            else if (media != null)
                Messagebox.show("Not an image: "+media, "Error",
                Messagebox.OK, Messagebox.ERROR);
            }
        </attribute>
    </button>
</window>
 
<window title="fileupload demo" border="normal">
    <button label="Upload">
        <attribute name="onClick"><![CDATA[{
            Object media = Fileupload.get(5);
            if (media != null)
            for (int j = 0; j < media.length; ++j) {
                if (media[j] instanceof org.zkoss.image.Image) {
                    Image image = new Image();
                    image.setContent(media[j]);
                    image.setParent(pics);
                } else if (media[j] != null) {
                    Messagebox.show("Not an image: "+media[j], "Error",
                    Messagebox.OK, Messagebox.ERROR);
                }
            }
        }]]>
        </attribute>
    </button>
    <vbox id="pics"/>
</window>
 

 

分享到:
评论
1 楼 xiao_feng68 2011-03-04  
有个疑问想问博主:问什么直接使用组件事件得到的media是都是按字节流读取的文件。
而通过get()出来的media要如此呢?

相关推荐

    开发工具 commons-fileupload-1.3.2

    开发工具 commons-fileupload-1.3.2开发工具 commons-fileupload-1.3.2开发工具 commons-fileupload-1.3.2开发工具 commons-fileupload-1.3.2开发工具 commons-fileupload-1.3.2开发工具 commons-fileupload-1.3.2...

    ASP.NET.FileUpload控件

    ASP.NET的FileUpload控件是Web开发中用于处理文件上传功能的重要组件。它允许用户从他们的本地计算机选择一个或多个文件,并将这些文件上传到服务器。在本文中,我们将深入探讨FileUpload控件的基本用法,包括如何在...

    FileUpload控件自动上传

    在.NET框架中,FileUpload控件是用于处理用户在Web应用程序中上传文件的关键组件。它允许用户选择本地计算机上的文件,并将其发送到服务器进行进一步处理。在这个特定的场景中,我们关注的是FileUpload控件的自动...

    commons-fileupload-1.2.2

    commons-fileupload-1.2.2commons-fileupload-1.2.2commons-fileupload-1.2.2commons-fileupload-1.2.2commons-fileupload-1.2.2commons-fileupload-1.2.2commons-fileupload-1.2.2commons-fileupload-1.2.2commons-...

    commons-fileupload-1.4-API文档-中文版.zip

    赠送jar包:commons-fileupload-1.4.jar; 赠送原API文档:commons-fileupload-1.4-javadoc.jar; 赠送源代码:commons-fileupload-1.4-sources.jar; 赠送Maven依赖信息文件:commons-fileupload-1.4.pom; 包含...

    commons-fileupload及源码

    在这个压缩包中,包含了`commons-fileupload-1.3.1-sources.jar`和`commons-fileupload-1.3.1.jar`两个文件,前者提供了源代码,后者是编译后的类库文件。 FileUpload组件的核心功能是解析HTTP请求中的多部分数据...

    fileUpload组件所需jar包

    Apache Commons FileUpload库是一个强大的工具,专门设计用于处理这种需求。本篇将详细讲解使用FileUpload组件实现JSP文件上传所需的步骤和关键知识点。 首先,`fileUpload组件`是Apache Commons项目的一个子项目,...

    commons-fileupload-1.3.3-API文档-中文版.zip

    赠送jar包:commons-fileupload-1.3.3.jar; 赠送原API文档:commons-fileupload-1.3.3-javadoc.jar; 赠送源代码:commons-fileupload-1.3.3-sources.jar; 赠送Maven依赖信息文件:commons-fileupload-1.3.3.pom;...

    commons-fileupload-1.4-bin.zip

    《Apache Commons FileUpload组件详解》 Apache Commons FileUpload是一个用于处理HTTP请求中多部分数据的Java库,尤其在上传文件时极为有用。标题中的"commons-fileupload-1.4-bin.zip"表明这是一个包含Apache ...

    commons commons-fileupload历史版本jar包集合

    commons commons-fileupload历史版本jar包集合,包括src源码 附件列表: commons-fileupload-1.0.zip commons-fileupload-1.1.1.zip commons-fileupload-1.1.zip commons-fileupload-1.2.1-bin.zip commons-...

    FileUpload

    【FileUpload】是一个基于JSP技术的文件上传组件,它使用了特定的JAR包来实现文件上传功能。在Web应用中,文件上传是常见的需求,例如用户可能需要上传个人头像、文档或其他数据。FileUpload组件使得开发者能够轻松...

    FileUpload组件

    Apache组织作为开源社区的巨头之一,为开发者提供了一系列强大的工具,其中包括用于处理文件上传的组件——FileUpload。这个组件极大地简化了在Java Web应用中实现文件上传的过程。 FileUpload组件主要基于Servlet...

    commons-fileupload-1.3.3&commons-fileupload-1.3.3架包和代码.rar

    标题中的"commons-fileupload-1.3.3&commons-fileupload-1.3.3架包和代码.rar"提到了Apache Commons FileUpload的1.3.3版本的库及其源码。Apache Commons FileUpload是一个Java库,专门用于处理HTTP协议中的多部分...

    ASP.Net中FileUpLoad控件内容清空

    ### ASP.NET中FileUpload控件内容清空方法详解 在ASP.NET Web开发中,`FileUpload` 控件常被用于实现文件上传功能。但在某些情况下,我们可能需要清空该控件的内容,例如用户取消了文件选择或者上传操作。本文将...

    commons-fileupload-1.3.3-bin.tar.gz

    标题中的"commons-fileupload-1.3.3-bin.tar.gz"是一个压缩包文件,包含了Apache Commons FileUpload 1.3.3版本的二进制(bin)文件,通常包括JAR库和其他必要的资源。 Apache Commons FileUpload的工作原理是基于...

    FileUpLoad 的 使用文档

    ### FileUpload 使用文档详解 #### 一、概述 在当今互联网时代,文件上传已经成为网站交互不可或缺的一部分。无论是发送电子邮件附件还是分享个人照片,文件上传功能都扮演着重要角色。然而,实现这一功能并非易事...

    Apache Commons FileUpload 1.3.2 released

    Commons FileUpload 1.3.2. The Apache Commons FileUpload component provides a simple yet flexible means of adding support for multipart file upload functionality to servlets and web applications. ...

    fileupload

    &lt;jsp:useBean id="myUpload" scope="page" class="fileUpload.upBean" /&gt; //初始化工作 myUpload.initialize(pageContext); //设定允许的文件后缀名 //myUpload.setAllowedExtList("gif,jpg"); //设定允许...

    fileupload-1.2.1.zip

    "fileupload-1.2.1.zip" 是一个包含 Apache Commons FileUpload 1.2.1 版本的压缩包。Apache Commons FileUpload 是一个Java库,专门用于处理HTTP请求中的多部分数据,即通常在上传文件时使用的格式。这个库使得在...

    一个漂亮的fileupload控件

    "一个漂亮的fileupload控件"这个标题所指的,就是一种优化了上传文件功能的UI组件。FileUpload控件是网页表单中常见的一种元素,它允许用户选择本地计算机上的文件并将其上传到服务器。在这里,描述提到这个控件是...

Global site tag (gtag.js) - Google Analytics