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. ...
随机推荐
- Exposing the Outlook Password Secrets
Exposing the Outlook Password Secrets - www.SecurityXploded.comhttp://securityxploded.com/outlookpas ...
- appium for mac 安装与测试ios说明
一.安装 安装dmg,可以自己下载appium-1.4.0.dmg或者找rtx我要,文件过大不能添加附件. Appium提供了一个doctor,运行appium-doctor 如果有问题,Fix it ...
- php里面用魔术方法和匿名函数闭包函数动态的给类里面添加方法
1.认识 __set (在给不可访问属性赋值时,__set() 会被调用) 也就是说你再访问一个类里面没有的属性,会出发这个方法 class A{ private $aa = '11'; publ ...
- Unmapped Spring configuration files found.
© 版权声明:本文为博主原创文章,转载请注明出处 1.问题描述: 搭建SSH框架后,IDEA弹出如下提示: 2.解决方案: File --> Project Structure --> M ...
- LINQ使用与并行
LINQ介绍 參考:https://msdn.microsoft.com/en-us/library/bb397906.aspx LINQ查询主要运行操作包含:1)获取数据源:2)创建查询:3)运行查 ...
- 求重集的r-组合
具体的就不在这里说了,如果有兴趣的可以把我的工程包下载下来看,留个URL http://pan.baidu.com/s/1bnes1HX
- java中高级写法
1.低级写法: if (null != redisCacheService.get(MediaConstants.GUANGDIANTONG_YOUMI + CommonConstants.PLUS ...
- oracle 11g r2 blob类型getString报错问题
摘要: 问题: 在hibernate中实体类中blob类型字段为 private String textBlob; 查询时报错: java.sql.SQLException: 无效的列类型: getS ...
- PHP 学习内容
第一阶段: (PHP+MySQL核心编程) 面向对象编程 MySQL数据库, MySQL的优化细节. HTTP协议,http也是我们web开发的基石.对我们了解PHP底层机制有很大帮助,做到知其然,还 ...
- sam配置命令概要
./install_packages --enhanced_reporting katello-configure --deployment=sam --user-pass=redhat chkcon ...