Uploader文件上传

Uploader说明

  Uploader 样式:

1

 

1. 引入自定义标签库 - <%@ taglib uri="controls" prefix="z"%>

 

2. 在需要插入上面图片所示的控件的地方插入如下代码:

  <z:upload id="FlashObject" width="300" height="25” barcolor="FF6600” action="../Editor/filemanager/upload/simpleuploader.jsp" allowtype="txt,jpg" onComplete="hello" />

  id:控件ID

  width:控件宽(IE下填百分比有问题)

  height:控件高(IE下填百分比有问题)

  barcolor:进度条颜色,填六位RGB

  action:文件上传地址

  allowtype:允许选择的文件类型,后缀名用英文逗号隔开

  onComplete:上传完毕后调用的js方法,注意不要括号

 

3. 控件提供的可调用方法

  addPostParam(values)

  设置随文件上传一起提交的表单数据,使用方法为:

  首先用var dc = Form.getData($F("表单名")); 取得表单内填写的数据;

  然后使用 getUploader(“控件ID”).addPostParam(dc. toQueryString()); 将参数添加;

  doUpload()

  开始上传,调用方法:getUploader(“控件ID”). doUpload();

  isComplete()

  文件是否上传完毕,该方法返回true或者false

  调用方法:getUploader(“控件ID”). isComplete();

 

文件上传实例

1.在前端页面加一个附件上传的控件如下

  <z:uploader width="300" id="File" allowType="*" />

  其中allowType表示可以上传文件的类型

 

2. 在前端页面加一个function upload(){}函数。例子如下

  function upload(){

  if(Verify.hasError()){

  return;

  }

  var uploader = new Uploader("File");

  if(!uploader.hasFile()){

  Dialog.alert("未选择文件");        

  }

  if(!uploader.hasError()){

  var dc = Form.getData("dialogForm");

  uploader.sendRequest("AddAttach.upload",dc,function(response){

  Dialog.alert("操作成功!",function(){

  Parent.DataGrid.loadData('grid');

  Dialog.close();

  });    

  });

  }else{

  Dialog.alert("上传控件发生错误!");

  }       

  }

  这个函数是通过uploader.sendRequest();方法把文件传到后台

 

3. 后台写一个upload()方法接受前端页面的文件提交并上传 例子如下:

  public void upload(UploadAction ua) {

  ZXOutProjectSchema outproject = new ZXOutProjectSchema();

  Transaction tran = new Transaction();

  String absoluteCatalogPath = Config.getContextRealPath() + "Upload" + "/";

 

  String ext = ServletUtil.getUrlExtension(ua.getFile().getName()); // 后缀名

  String name= NoUtil.getMaxID("ZXOutProjectID")+ext;

  File newfile = new File(absoluteCatalogPath,name);

  try {

  ua.getFile().write(newfile);

  } catch (Exception e) {

  e.printStackTrace();

  Response.setError("发生错误:" + e.getMessage());

  return;

  }

  if (ObjectUtil.empty($V("ID"))) {

  outproject.setValue(Request);

  outproject.setStatus("1");

  outproject.setAddTime(new Date());

  outproject.setAddUser(User.getUserName());

  outproject.setID(NoUtil.getMaxID("ZXOutProjectID"));

  outproject.setAttach(name);

  tran.insert(outproject);

  }else {

  outproject.setID($V("ID"));

  outproject.fill();

  outproject.setValue(Request);

  outproject.setModifyTime(new Date());

  outproject.setModifyUser(User.getUserName());

  outproject.setAttach(name);

  tran.update(outproject);

  }

  if (tran.commit()) {

  Response.setMessage("操作成功");

  } else {

  Response.setError("发生错误:" + tran.getExceptionMessage());

  }

  }

  注意upload()里面的参数是UploadAction ua;ua.getFile().write(newfile);这段代码是把文件上传到指定的文件夹下面。

hackIE