`
sonyfe25cp
  • 浏览: 203845 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

 
阅读更多
在使用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:真是很垃圾的思路....不过总算给我把问题解决掉了...
分享到:
评论
3 楼 sonyfe25cp 2009-03-01  
hyj0903 写道

可以使用js来判断

对js用的不好..所以大多东西都是只用struts2,界面上没有进行相关处理。
基本全靠后台程序来进行的。
-_-!
2 楼 hyj0903 2009-02-25  
[size=xx-large][size=large][size=xx-small][size=x-large]你这种方法确实可以!!我在用jsmartupload上传时也有类似的问题不知还有什么好的上传组件没有!!!![/size][/size][/size][/size]
1 楼 hyj0903 2009-02-25  
可以使用js来判断

相关推荐

    Springboot通过MinIO进行文件操作代码

    MinIO是高度兼容Amazon S3的对象存储服务器,提供了简单、快速、可扩展的数据存储解决方案。本教程将详细介绍如何在Spring Boot项目中集成MinIO,并实现文件操作及预览功能。 首先,我们需要在项目中引入MinIO的...

    基于go、vue的文件上传系统

    【基于Go、Vue的文件...通过Vue.js的用户交互能力和Go语言的高性能处理,我们可以构建出既安全又高效的文件上传解决方案。在实际项目中,还可以进一步优化,如添加断点续传、多文件批量上传等功能,以满足更多需求。

    基于.net下C#开发的基于xml原理的作业提交系统(源码)含系统设计解决方案文档.zip

    这涉及到文件上传技术,可能通过HTTP协议进行,同时需要处理文件大小限制、文件类型的检查等安全性问题。 5. **系统设计**:解决方案文档通常包含了系统的设计原则、架构、模块划分以及数据库设计等内容。在本系统...

    智慧环保解决方案.rar

    在智慧环保解决方案.ppt这个文件中,可能详细介绍了上述技术如何应用于实际的环保项目,如智能垃圾分类、水资源管理、生态保护区监控等。具体可能会涵盖以下几个方面: 1. 智能垃圾分类:通过AI图像识别技术,自动...

    用.Net的File控件上传文件的解决方案

    在遍历了csdn中所有关于上传大文件的帖子以后,写了这篇垃圾。(:-)) 上传大文件,有好几种方法: 1、思归的HttpWorkerRequest方法,太难,看不懂:-( 2、利用第三方的控件 AspNetUpload 要钱!!算了,咱还是喜欢...

    一键清理系统垃圾-改过的

    总的来说,这个修改后的工具旨在提供一个安全且有效的系统垃圾清理解决方案,同时避免对关键系统文件夹的权限造成破坏,特别是对IIS等关键服务的依赖。用户在使用时应遵循上述注意事项,确保系统的稳定性和安全性。

    基于go语言实现的仿百度网盘的文件存储系统

    本项目旨在实现一个类似的文件存储系统,采用强大的Go语言作为主要开发工具,以提供高效、安全、可扩展的文件存储解决方案。 【核心知识点】: 1. **Go语言基础**:Go语言,也称为Golang,是由Google开发的一种...

    智能垃圾分类机器人.zip

    总的来说,智能垃圾分类机器人是智能制造技术在环保领域的成功实践,结合了人工智能、图像识别、物联网等先进技术,为实现可持续发展提供了有效的解决方案。通过深入研究和不断优化,这些机器人有望在未来的城市环境...

    C#实现上传文件图片的ActiveX

    为了提高兼容性和安全性,可以考虑同时提供ActiveX和非ActiveX版本的文件上传解决方案。 7. **安装与卸载**: `Setup.bat`和`UnInsall.bat`可能是用来安装和卸载ActiveX控件的批处理脚本。安装脚本通常会注册控件,...

    垃圾分类.zip

    而在这个领域,Python作为一种强大的编程语言,以其易学易用、丰富的库资源和高效的数据处理能力,被广泛应用于垃圾分类的智能化解决方案。本文将深入探讨Python在垃圾分类中的具体应用及其相关技术。 首先,我们...

    防猎豹垃圾清理

    总结,"防猎豹垃圾清理"针对iOS设备提供了全面的清理解决方案,不仅能够清理各种类型的垃圾文件,还具备获取App列表的功能,以帮助用户更好地管理自己的设备。通过定期使用此类工具,用户可以保持设备的良好状态,...

    Java线上故障排查方案(2).pdf

    本文档围绕Java线上故障排查提供了详尽的方案和知识点,覆盖了从问题定位到解决方案的多个方面。 首先,了解Java线上常见问题的分类是非常重要的。在生产环境中,问题可大致分为系统异常和业务异常两大类。系统异常...

    ASP.NET MVC文件上传教程(二)

    为了解决这个问题,本教程提到了一种更为优化的处理方式,即先将上传的文件保存为临时文件,在上传成功后才将临时文件移动到目标文件夹。这样可以有效减少因上传中断导致的垃圾文件问题,并且可以向用户显示上传进度...

    2023工训赛垃圾分类

    《2023工训赛垃圾分类:Maixhub模型训练详解》 在当前环保意识日益增强的背景下,垃圾...这个过程不仅锻炼了开发者的数据处理和模型构建能力,也为环保事业提供了智能化解决方案,有助于推动垃圾分类的普及与提升。

    电信设备-方便移动的垃圾桶.zip

    总的来说,"电信设备-方便移动的垃圾桶.zip"是一个可能包含创新环保解决方案的压缩包,其内部的PDF文件为我们提供了深入理解这一设备的关键信息。对于IT专业人员而言,掌握如何处理和解读这类文件是日常工作的一部分...

    Go-Quickshare一个小而美的文件共享服务器

    《Go-Quickshare:构建小而美的文件共享服务器》 Go-Quickshare是一个小巧而功能强大的文件共享服务器,它以其便捷性、跨平台性...无论是对个人用户还是企业团队,Go-Quickshare都是一个值得尝试的文件共享解决方案。

    基于python语音识别的智能垃圾分类系统源码数据库.doc

    ### 基于Python语音识别的智能垃圾分类系统 #### 概述 随着环境保护意识的不断增强以及资源回收技术的发展,垃圾分类已成为...同时,也可以考虑与其他智能硬件设备相结合,实现更加智能化的家庭垃圾分类解决方案。

    基于WASM的文件上传加速实践.pdf

    为了解决这些问题,WebAssembly(简称WASM)技术应运而生,它为Web应用带来了原生代码级别的执行效率,极大地提升了文件上传的性能。 **上传应用介绍** 上传应用分为简单和复杂两种类型。简单的上传通常涉及单个...

    基于平台的垃圾识别定位.zip

    在当前的数字化时代,垃圾识别和定位...这些技术的融合应用,为解决现实世界中的环保问题提供了智能化的解决方案。通过深入理解和掌握这些技术,我们可以构建更高效、更智能的城市管理系统,助力实现绿色可持续发展。

    antispam:简单的反垃圾邮件解决方案,具有JavaScript的魔力

    入侵者反垃圾邮件简单的反垃圾邮件解决方案,具有JavaScript的魔力描述简单的反垃圾邮件解决方案。 通过JavaScript对单词进行加扰并自动将其拼凑在一起。 启用JavaScript的用户不会注意到任何东西。 那些禁用了...

Global site tag (gtag.js) - Google Analytics