java上传文件,下载文件
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上传文件,下载文件的更多相关文章
- ftp上传或下载文件工具类
FtpTransferUtil.java工具类,向ftp上传或下载文件: package utils; import java.io.File; import java.io.FileOutputSt ...
- Spring Boot之 Controller 接收参数和返回数据总结(包括上传、下载文件)
一.接收参数(postman发送) 1.form表单 @RequestParam("name") String name 会把传递过来的Form表单中的name对应 ...
- SecureCRT上传和下载文件
SecureCRT上传和下载文件(下载默认目录) SecureCR 下的文件传输协议有ASCII .Xmodem .Ymodem .Zmodem ASCII:这是最快的传输协议,但只能传送文本文件. ...
- 11、只允许在主目录下上传和下载文件,不允许用putty登录
创建用户xiao, 使其只允许在用户主目录 (/var/www/html)下上传和下载文件,不允许用putty登录 (为了安全起见,不给过多的权限) 1.创建xiao用户 [root@localh ...
- 每天一个linux命令(26):用SecureCRT来上传和下载文件
用SSH管理linux服务器时经常需要远程与本地之间交互文件.而直接用SecureCRT自带的上传下载功能无疑是最方便的,SecureCRT下的文件传输协议有ASCII.Xmodem.Zmodem. ...
- 利用SecureCRT上传、下载文件(使用sz与rz命令),超实用!
利用SecureCRT上传.下载文件(使用sz与rz命令),超实用! 文章来源:http://blog.csdn.net/dongqinliuzi/article/details/39623169 借 ...
- Linux--用SecureCRT来上传和下载文件
SecureCRT下的文件传输协议有以下几种:ASCII.Xmodem.Ymodem.Zmodem ASCII:这是最快的传输协议,但只能传送文本文件. Xmodem:这种古老的传输协议速度较慢,但由 ...
- secureCRT简单上传、下载文件记录
secureCRT简单上传.下载文件记录: 1)sz下载 -y 覆盖 2)rz上传 -y 覆盖 3)以上两个命令属于安装时包含在“Dial-up Networking Support"组中 ...
- 每天一个linux命令(26)--用SecureCRT来上传和下载文件
用SSH管理Linux 服务器时经常需要远程与本地之间交互文件,而直接使用 SecureCRT 自带的上传下载功能无疑是最方便的,SecureCRT下的文件传输协议有ASCII.Xmodem.Zmod ...
- 每天一个linux命令(26):用SecureCRT来上传和下载文件(转载自竹子)
用SSH管理linux服务器时经常需要远程与本地之间交互文件.而直接用SecureCRT自带的上传下载功能无疑是最方便的,SecureCRT下的文件传输协议有ASCII.Xmodem.Zmodem. ...
随机推荐
- Android NDK生成共享库和静态库
Date: 2014-03-14 Title: Compile Android Native Binary And Library Published: true Type: post Tags: A ...
- POJ 2029 Get Many Persimmon Trees (二维树状数组)
Get Many Persimmon Trees Time Limit:1000MS Memory Limit:30000KB 64bit IO Format:%I64d & %I ...
- react-native ListView 封装 实现 下拉刷新/上拉加载更多
1.PageListView 组件封装 src/components/PageListView/index.js /** * 上拉刷新/下拉加载更多 组件 */ import React, { Com ...
- (CF#257)A. Jzzhu and Children
There are n children in Jzzhu's school. Jzzhu is going to give some candies to them. Let's number al ...
- odoo12新特性: 会计改进
改进分析会计 分析会计层级结构 分析分配 分析分录增加了表格视图 ============== SPECIFICATIONS ============== a. Hierarchy - Cr ...
- Oracle 为表空间增加数据文件
dba权限检查下 select tablespace_name, file_id, file_name, ),) total_space from dba_data_files order by ta ...
- 多trac的安装和配置
其他相关网页: trac+svn: http://wenku.baidu.com/view/84389a81ec3a87c24028c43f.html apache(GCI):http://hi.ba ...
- CentOS7网络桥接模式下配置-经典完备
原文地址:http://blog.csdn.net/youzhouliu/article/details/51175364 首先要将Vmware设置为桥接模式: 并选择宿主机连接的网路进行桥接: Ce ...
- MongoDB 常见的查询索引
常见的查询索引 _id索引 _id 索引是绝大多数集合默认建立的索引.对于每一个插入的数据.MongoDB 会自己主动生成一条唯一的 _id 字段. 1 2 3 4 5 6 7 8 9 ...
- curl命令测试https
curl -vosa --resolve pic.test.net::222.241.7.179 https://pic.test.net/UploadFiles/201312031744347965 ...