处理“上传文件为空”问题的很垃圾的解决方案

在使用struts2的<s:file> 标签进行上传文件的时候总是碰到空文件的问题。
具体描述:如果用户不上传文件的话,提交表单的时候就会因为这个地方而出现异常。
原因:action的处理中用到了context.getRealPath(getSavePath());默认是处理这个部分的,没有处理文件为空的情况.

原先的解决方案(未处理该问题):

// System.out.println(context.getRealPath(getSavePath()));
FileOutputStream fos;
fos = new FileOutputStream(context.getRealPath(getSavePath())
+ "\\"+ CharacterTrans.transGB2312ToTo8859_1(getUploadFileName()));
FileInputStream fis = new FileInputStream(getUpload());
byte[] buffer = new byte[1024];
int len = 0;
while ((len = fis.read(buffer)) > 0) {
fos.write(buffer, 0, len);
}
rollMessage.setFujian("upload\\fujian\\"
+ CharacterTrans.transGB2312ToTo8859_1(getUploadFileName()));


目前的解决方案(自己都觉得垃圾..但是可以解决问题):

try {
// System.out.println(context.getRealPath(getSavePath()));
FileOutputStream fos;
fos = new FileOutputStream(context.getRealPath(getSavePath())
+ "\\"
+ CharacterTrans.transGB2312ToTo8859_1(getUploadFileName()));
FileInputStream fis = new FileInputStream(getUpload());
byte[] buffer = new byte[1024];
int len = 0;
while ((len = fis.read(buffer)) > 0) {
fos.write(buffer, 0, len);

}
rollMessage
.setFujian("upload\\fujian\\"
+ CharacterTrans
.transGB2312ToTo8859_1(getUploadFileName()));
} catch (FileNotFoundException e) {
System.out.println("滚动消息的附件上传有误");
rollMessage.setFujian("");

e.printStackTrace();
} catch (NullPointerException e) {
System.out.println("滚动消息的附件上传有误");
rollMessage.setFujian("");

e.printStackTrace();
}


解决思路:因为不传文件时候会报nullPointerException...那就将计就计咯..

ps:真是很垃圾的思路....不过总算给我把问题解决掉了...
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值