返回dqilu博客列表

Tiny3.0结合WebUpload实现多文件上传

发布于 5月前
摘要
TinyUiEnterprise2已经集成了webupload插件,但是没有action后台的实现,经过本人的摸索和测试,实现了文件的上传功能

application.xml

Tiny Framework是一个基于J2EE技术的应用开发框架,可以用来开发各种Java Application和Web Application。最近推出了3.0版,性能得到了很大提升,下面将Tiny3.0结合WebUpload插件实现文件上传的方法拿出来,请大家多指点。

TinyUiEnterprise2已经集成了webupload插件,但是没有action后台的实现,经过本人的摸索和测试,实现了文件的上传功能,现把实现方法说明如下:

1、首先在page页面文件中加入webupload插件,使用方法为#webUploadsaveurl,详细内容请查看TinyUiEnterprise2中对插件的介绍。

  如:#webUpload("multiupload?userId=admin")

"multiupload?userId=admin"是调用的后台action处理的url

2、Action中的实现

@RequestMapping("/multiupload")

@ResponseBody

public Map<?, ?> multiUpload(@RequestParam("webfile")TinyMultipartFile[] files,String userId,Model model) throws IOException{

String ls_path=ConfigurationUtil.getConfigurationManager().getConfiguration("UPLOADPATH");

String ls_filename="";

String ls_filepath="";

 

if(files!=null){

for (int i = 0; i < files.length; i++) {

TinyMultipartFile file=files[i];

if(file!=null){

ls_filename = file.getOriginalFilename();

ls_filename = "/uploads/user/"+userId+ls_filename.substring(ls_filename.indexOf("."));

ls_filepath=ls_path + ls_filename;

super.saveFile(ls_filepath, file);


        if(userId !=null){

            SysUserDto sysUserDto = sysUserService.getSysUser(userId);

            if(sysUserDto!=null){

             sysUserDto.setRemark(ls_filename);

             sysUserService.updateSysUser(sysUserDto);

             model.addAttribute("sysUserDto",sysUserDto);

            }

        }


}

}

}


return resultMap(true,ls_filename);

}

 

TinyMultipartFile Tiny重新定义的文件类型;

ConfigurationUtil.getConfigurationManager().getConfiguration("UPLOADPATH");用来获得在application.xml中设置的文件上传位置;

action实现了根据参数userId,把上传的文件路径存放到数据库中的user表中,实现了user头像文件的上传功能,大家可以结合自己的情况进行修改。

 

saveFile(ls_filepath, file)实现了上传文件写入的处理,具体实现如下:

 

protected void saveFile(String path, TinyMultipartFile file) {

    try {

      InputStream stream = file.getInputStream();

      OutputStream bos = new FileOutputStream(path);

      int bytesRead = 0;

      byte[] buffer = new byte[8192];

      while ( (bytesRead = stream.read(buffer, 0, 8192)) != -1) {

        bos.write(buffer, 0, bytesRead);

      }

      bos.close();

      stream.close();

      bos = null;

      stream = null;

    }

    catch (FileNotFoundException ex) {

      ;

    }

    catch (IOException ex) {

      ;

    }

  }

 

3、Application.xml中需要增加的配置

application-properties属性下增加如下配置:

<property name="UPLOADPATH" value="D:/work/bnkj/pub/web/src/main/webapp" />

用来指定上传文件的本地硬盘的实际存放路径。

<parser>属性下增加如下配置:

<upload-service bean-name="uploadService">

<property value="-1" name="sizeMax" />

<property value="-1" name="fileSizeMax" />

<property value="C:\temp" name="repository" />

<property value="1024" name="sizeThreshold" />

<property value="true" name="keepFormFieldInMemory" />

<property value="false" name="saveInFile" />

<property value="true" name="temporary" />

</upload-service>

用来指定上传文件的配置信息

经过以上的配置就可以实现文件的上传了,实现效果如下:

upfile.jpg

 
相关信息
     标签
       附件
      文件 标题 创建者

      评分 0次评分

      日程