z:uploader标签

简介

  基于flash的文件上传控件。

 

属性说明

名称

参数类型

是否必填

默认值

描述

id

String

true

 

规定元素的唯一 id

name

String

false

 

定义元素的名称

width

int

false

 

控件宽

height

int

false

 

控件高

fileName

String

false

 

上传文件名称

barColor

String

false

 

进度条颜色,填六位RGB

fileCount

int

false

 

允许同时上传的文件数目上限

allowType

String

false

 

允许上传的文件类型

fileMaxSize

int

false

 

允许上传的文件最大值

示例

页面示例:

 

<tr>

    <td align="left" valign="middle">

       <z:lang id="Article.SelectFiles">选择文件</z:lang> <z:uploader id="FileUploader" width="325" allowType="doc,xls,docx,xlsx" /><br/>

        <z:lang id="Article.WordImport.Support">支持docxlsdocxxlsx格式文件</z:lang>

    </td>

</tr>

 

js示例:

 

<script>

function uploadSave(){

    var uploader = new Uploader("FileUploader");

    if(!uploader.hasFile()){

        Dialog.alert("<z:lang id='Imageplayer.ImageUploadJSP.NotSelectFile'>未选择文件</z:lang>");

        return;

    }

    if(uploader.hasFile()&&!uploader.hasError()){

        var dc = Form.getData("form2",'','json');

         uploader.sendRequest("Article.wordImport",dc,function(response){

            if(response.Status==0){

                Dialog.warn(response.Message);

                return;

            } else {

                MsgPop(response.Message)

                dialogOpener.DataList.loadData("list1");

                ownerDialog.close();

            }

        },null,null,'json');

    }

}

</script>

 

后台代码示例:ArticleUI.java

 

       @Priv(CatalogPrivService.ContentPrefix + "Add.${CatalogID}")

    public void wordImport(UploadAction ua) {

        if (ua.getAllFiles() == null || ObjectUtil.empty($V("CatalogID"))) {

            fail(Lang.get("Article.UploadFile.MissMsg"));

            return;

        }

        String dirPath = SiteUtil.getSiteRoot(SiteBL.getCurrentSite()) + "upload/_wordimport/";

        for (FileItem fi : ua.getAllFiles()) {

            try {

                String title = fi.getName().substring(0, fi.getName().lastIndexOf("."));

                int count = ArticleBL.sameTitleCount(title, $V("CatalogID"), SiteBL.getCurrentSite(), "0");

                if (count > 0) {

                    fail(Lang.get("Article.TitleExists"));

                    return;

                }

                if (!new File(dirPath).exists()) {

                    FileUtil.mkdir(dirPath);

                }

                File in = new File(dirPath + fi.getName());

                fi.write(in);

                ……

                // 保存文章

                Mapx<String, Object> params = new Mapx<String, Object>();

                params.put("CatalogID", $V("CatalogID"));

                params.put(ArticleContent.ContentsKey, content);

                params.put("Title", title);

                params.put("ID", NoUtil.getMaxID(IContent.CONTENT_PRI_KEY));

                ArticleContent article = new ArticleContent(params);

                article.setTransaction(Current.getTransaction());

                article.setValue(ArticleContent.Operator, User.getUserName());

                article.insert();

                ContentLogBL.log(article, ContentLogType.ADD, Lang.get("Contentcore.Import"));// 增加日志记录

            } catch (Exception e) {

                e.printStackTrace();

                fail(e.getMessage());

                FileUtil.deleteFromDir(dirPath);

                return;

            } finally {

                FileUtil.deleteFromDir(dirPath);

            }

        }

        if (Current.getTransaction().commit()) {

            success(Lang.get("Common.ExecuteSuccess"));

        } else {

            fail(Lang.get("Common.ExecuteFailed"));

        }

    }

页面参考:articleImportDialog.zhtml。

示例说明

  在页面使用<z:uploader>标签后,处理上传的函数中需要通过new Uploader(uploaderid)创建Uploader的实例,函数请求的后台方法中以UploadAction实例ua为参数,接收页面中的Uploader实例,并通过ua.getFirstFile()或者ua.getAllFiles()获取待上传的文件项。

显示效果

D_副本

hackIE