1。上传文件
1 protected int doTask(BaseForm form) throws AppException, FatalException, NoExistsException, GreaterMaxException {
if(log.isDebugEnabled()) {
log.debug("entering doTask ...");
}
// UploadFormの取得
UploadForm uploadForm = (UploadForm)form;
FormFile uploadFile = uploadForm.getUploadFile();
//アップロードファイルのデータが0件の場合
if(uploadFile.getFileSize()==0){
return CommonConst.RES_OK;
}
InputStreamReader isr;
T101UpFileHis upFileHis = new T101UpFileHis();
try {
isr = new InputStreamReader(uploadFile.getInputStream());
BufferedReader br = new BufferedReader(isr);
String str = null;
String[] contextArray;
Set<String> set = new HashSet<String>();
//総件数
long allcount = 0;
StringBuffer errStr = new StringBuffer("");
while((str = br.readLine())!= null){
allcount++;
contextArray = str.split(",");
//データの項目数の判断
if(contextArray.length == 9 ){
//telNo
if(contextArray[0] != null && !"".equals(contextArray[0])){
set.add(contextArray[0]);
} else {
errStr.append("第"+allcount+"行目データは無効です。"+"\r\n");
}
}else{
errStr.append("第"+allcount+"行目データは無効です。"+"\r\n");
}
}
isr.close();
br.close(); ByteArrayInputStream errInputStream = null;
if(!"".equals(errStr.toString())){
errInputStream = new ByteArrayInputStream(errStr.toString().getBytes());
}
upFileHis = setT101FromUpload(uploadForm, uploadFile, set, allcount,errInputStream);
upFileHisDao.save(upFileHis);
} catch (Exception e) {
e.printStackTrace();
} if(log.isDebugEnabled()) {
log.debug("leaving doTask ...");
}
return CommonConst.RES_OK;
}

2。下载文件

 if(funcID.equals(LineConst.FUNC_DOWNLOAD)){
this.csvTplDownloadSrv.doService(baseForm);
CsvFileRegForm csvFileRegForm = (CsvFileRegForm)baseForm;
List<M302PrcTpl> prcTplList=csvFileRegForm.getM302PrcTplList();
String tplStr="";
for (int i = 0; i < prcTplList.size(); i++) {
M302PrcTpl m302PrcTpl=prcTplList.get(i);
tplStr+=m302PrcTpl.getItemNM();
if(i<prcTplList.size()-1){
tplStr+=",";
}
} String fileName=System.currentTimeMillis()+"_"+csvFileRegForm.getComProdId()+"_csvTPL.csv";
// エンコードの転換
fileName = URLEncoder.encode(fileName,LineConst.LIST_CREATE_DOWNLOAD_ENCODER);
OutputStream fos = response.getOutputStream();
BufferedOutputStream bos = new BufferedOutputStream(fos);
response.setContentType(CommonConst.CONST_RESPONSE_CONTENTTYPE);
response.setHeader(CommonConst.CONST_REQUEST_CONTENT_DISPOSITION, CommonConst.CONST_RESPONSE_ATTACHEMENT + fileName);
//bos.write(tplStr.getBytes());
bos.write(tplStr.getBytes(Charset.forName(LineConst.LIST_CREATE_DOWNLOAD_ENCODER))); bos.flush();
fos.close();
bos.close();
return null;
}

java上传文件,下载文件的更多相关文章

  1. ftp上传或下载文件工具类

    FtpTransferUtil.java工具类,向ftp上传或下载文件: package utils; import java.io.File; import java.io.FileOutputSt ...

  2. Spring Boot之 Controller 接收参数和返回数据总结(包括上传、下载文件)

            一.接收参数(postman发送) 1.form表单 @RequestParam("name") String name 会把传递过来的Form表单中的name对应 ...

  3. SecureCRT上传和下载文件

    SecureCRT上传和下载文件(下载默认目录) SecureCR 下的文件传输协议有ASCII .Xmodem .Ymodem .Zmodem ASCII:这是最快的传输协议,但只能传送文本文件. ...

  4. 11、只允许在主目录下上传和下载文件,不允许用putty登录

    创建用户xiao,   使其只允许在用户主目录 (/var/www/html)下上传和下载文件,不允许用putty登录 (为了安全起见,不给过多的权限) 1.创建xiao用户 [root@localh ...

  5. 每天一个linux命令(26):用SecureCRT来上传和下载文件

    用SSH管理linux服务器时经常需要远程与本地之间交互文件.而直接用SecureCRT自带的上传下载功能无疑是最方便的,SecureCRT下的文件传输协议有ASCII.Xmodem.Zmodem. ...

  6. 利用SecureCRT上传、下载文件(使用sz与rz命令),超实用!

    利用SecureCRT上传.下载文件(使用sz与rz命令),超实用! 文章来源:http://blog.csdn.net/dongqinliuzi/article/details/39623169 借 ...

  7. Linux--用SecureCRT来上传和下载文件

    SecureCRT下的文件传输协议有以下几种:ASCII.Xmodem.Ymodem.Zmodem ASCII:这是最快的传输协议,但只能传送文本文件. Xmodem:这种古老的传输协议速度较慢,但由 ...

  8. secureCRT简单上传、下载文件记录

    secureCRT简单上传.下载文件记录: 1)sz下载 -y 覆盖 2)rz上传 -y 覆盖 3)以上两个命令属于安装时包含在“Dial-up Networking Support"组中 ...

  9. 每天一个linux命令(26)--用SecureCRT来上传和下载文件

    用SSH管理Linux 服务器时经常需要远程与本地之间交互文件,而直接使用 SecureCRT 自带的上传下载功能无疑是最方便的,SecureCRT下的文件传输协议有ASCII.Xmodem.Zmod ...

  10. 每天一个linux命令(26):用SecureCRT来上传和下载文件(转载自竹子)

    用SSH管理linux服务器时经常需要远程与本地之间交互文件.而直接用SecureCRT自带的上传下载功能无疑是最方便的,SecureCRT下的文件传输协议有ASCII.Xmodem.Zmodem. ...

随机推荐

  1. 小计一次linux下渗透方法

    本文转自91ri 踩点 目标域名是XX.com 我们的目标是大站,所以主站一般都挺安全的,所以直接寻找二级目录,运气好时能找到一些开源的cms,运气更好点找到个dede啥的,那就…. 我们直接枚举他域 ...

  2. (通用Mapper、分页,批量插入,一分钟接入)spring mvc+mybatis+maven集成tkmapper+pagehelper

    <!-- maven tkmapper引入--> <dependency> <groupId>tk.mybatis</groupId> <arti ...

  3. vuex mapActions

    在组件中使用 this.$store.dispatch('xxx') 分发 action,或者使用 mapActions 辅助函数将组件的 methods 映射为 store.dispatch 调用( ...

  4. ubuntu下Tomcat绑定80端口

    转载自:https://www.2cto.com/os/201102/84081.html   工作环境迁移到了Ubuntu,很多东西发生了变化,比如原先配置tomcat端口.只需要配置server. ...

  5. 使用lua扩展应用程序

    全局变量的操作 void lua_getglobal(lua_State * L ,const char * name) 此函数从lua中取出一个名为name的全局变量并将其压入栈中. 如当lua文件 ...

  6. centos源码安装lnmp

    参考博客:http://blog.csdn.net/yanzi1225627/article/details/49123659 服务器环境为:CentOS6.6 64位(虚拟机) 一.安装前准备 创建 ...

  7. Android使用Fragment打造万能页面切换框架

    首先我们来回顾一下传统用Activity进行的页面切换.activity之间切换.首先须要新建intent对象,给该对象设置一些必须的參数,然后调用startActivity方法进行页面跳转. 假设须 ...

  8. elasticsearch报错syncedb_path

    一般默认syncdb_path在$HOME目录下隐藏文件,也可以自己指定一个文件,记住,这里只能指定文件,不能只写目录input { file { path => "/home/tom ...

  9. Java和C++ 比較

    总体差别 1. C/C++是直接执行在机器上(编译后为机器码),而java编译后产生*.class文件(字节码)是执行在java虚拟机上在(JVM),经过JVM解译(机器码)再放到真实机器上执行. J ...

  10. JS-以鼠标位置为中心的滑轮放大功能demo1

    以鼠标位置为中心的滑轮放大功能demo1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &qu ...