说真的,做开发快两年了。自己感觉自己并没有多大的进步。心里很遗憾,虽然每次领导安排的任务也几乎都能完成。但是自我感觉质量部是很高。
近期发现身边的牛人同事们个个都有在维护自己的博客。每当完成一件工作就会将自己的工作总结好发出来与大家一起分享,我也知道这样做的好处。只是一直懒不愿意去写。每次都是在工作的时候东拼西凑的把工作好不容易完成,完事以后根本不想再回头去整理这些。久了以后发现自己都看不懂之前写的那些破代码了。
于是暗下决心以后一定痛定思痛、悔过自新!
这两天的工作其实没有什么技术含量、只是我太久没有接触过了、导致一时手生。说简单点仅仅是个图片上传而已。只是中途涉及到一点修改和覆盖的逻辑。
要求是这样的,在提交一条稿件时需要上传图片,图片上传到服务器上,地址存在表里。很简单的也许两年前让我写也就是一个小时的事情。可是现在却耽误了我两天让我觉得自己退化的实在有点可怕。
废话多了。开始说开发吧
首先jsp页面
上传图片,先在页面上的form表单中建个file提交对象
[flash=200,200]
[/flash]
因为用的是webwork框架所以自定义成提交都以jspa形式。和struts的*.do到action是一个意思
红色部分
multipart/form-data是提交form表单用来传输文件流用的。记得很久以前这样写过。我当时忘了写了,害我找了半天都找不着,如果不填action的file对象一直是空的。
webwork的action层
必须声明一个和页面的file提交对象名称一致的file对象
private File [color=darkred]linknewsPic[/color];
private String [color=darkred]linknewsPicFileName;[/color]//文件名称也必须以fileName结尾。不知道为什么这样。这段完全是听同事的。
//保存方法
//开始上//上传图片
if(linknewsPic!=null){
IPortalWindowService pws =(IPortalWindowService)getBean("portalWindowService");
SystemManager sm = SystemManager.getInstance();//创建读取系统文件对象
String picBasePath = sm.getPropValue("xhpPicBasePath");//读取/conf.properties";配置文件(我这里是xhpPicBasePath=/temp)在windows下Webllogic默认把地址创建在Webllogic默认的盘符下的根目录下
SimpleDateFormat sf = new SimpleDateFormat("yyyy/MM/dd");
String str = sf.format(dt);
//获取文件后缀名
String hzname = linknewsPicFileName.substring(linknewsPicFileName.length()-4);//因为jsp的js验证已经限制了文件格式。所以默认截取的这最后的后缀名为.jpg或者.gif之类的后缀。
File picFile = new File(picBasePath+ "/" + str + "/" + System.currentTimeMillis() + hzname);//创建新的file对象给定地址为刚刚读取的地址加以年月日生成的目录。文件名称以当前的时间毫秒值为名称。(内部系统不存在多人同时上传的可能所以毫秒值完全满足)
System.out.println("文件保存路径:"+picFile.getPath());
boolean isupd = saveAs(picFile.getPath());//上传方法
if(isupd){
System.out.println("链接稿图片上传成功!");
System.out.println(picFile.getAbsolutePath());
tanlink.setIMAGEDIR(picFile.getPath());
tanlink.setISCOPYURL("0");
}else{
System.out.println("链接稿图片上传失败!");
resultMap.put("modify", "链接稿图片上传失败,修改失败");
return SUCCESS;
}
}
//上传方法
public boolean saveAs(String destFilePathName) {
final int BUFFER = 2048;//缓存字节
InputStream in = null;//创建输入流对象
OutputStream out = null;//输出流对象
try {
File loadFile = new File(destFilePathName);//创建文件对象
int count;
byte data[] = new byte[BUFFER];//读取文件字节数组
File parentFile = loadFile.getParentFile();//获取要上传文件的上级目录
if (parentFile!=null && !parentFile.exists()) {
if(!parentFile.mkdirs()){//创建该文件目录包括年月日的目录
logger.warn("error mkdirs:"+parentFile.getAbsolutePath());
return false;//如果创建失败则返回
}
}
// write the files to the disk
out = new FileOutputStream(loadFile);//创建文件输入流对象
in = new FileInputStream(this.getLinknewsPic());//读取流
while ((count = in.read(data, 0, BUFFER)) != -1) {//每次写入指定字节数
out.write(data, 0, count);
}
out.flush();//清空输入流
} catch (UnknownHostException e) {
e.printStackTrace();
return false;
} catch (IOException e) {
e.printStackTrace();
return false;
} catch (Exception e) {
e.printStackTrace();
return false;
} finally {
try {
if (in != null) {in.close();}
} catch (Exception e) {
e.printStackTrace();
}
try {
if (out != null) {out.close();}
} catch (Exception e) {
e.printStackTrace();
}
}
return true;
}
jsp中的js验证限制文件格式
<form id="editLinkNews" action="saveLinkNews.jspa" method="post" onsubmit="return
checkForm(this);" enctype="multipart/form-data">
function checkForm(form){
if(form.linktitle.value==""){
alert("请输入稿件名称");
return false;
}
if(form.linksourceurl.value==""){
alert("请输入稿件地址");
return false;
}
if(form.news_date.value==""){
alert("稿件发布时间不填则为系统当前时间");
}
if(form.out_time.value==""){
alert("稿件过期时间不填则为系统当前时间");
}
// alert(form.elements['iscopy'].length);
var radio = form.iscopy;
for(i=0;i<radio.length;i++){
var check = radio[i].checked;
if(check){
iscopyvalue = radio[i].value;
if(iscopyvalue=="1"){
var s = /(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/;
var picValue= form.elements["coplinknewsPic"].value;
if(picValue!="" && !picValue.match(s)){
alert("请重新输入格式正确的网址再提交!");
return false;
}
}else{
var s = /^.*?\.(jpg|JPG|jpeg|JPEG|gif|GIF|png|PNG){1}$/;
var picValue = form.elements["linknewsPic"].value;
if(picValue!="" && !picValue.match(s)){
alert("请重新选择正确的图片格式上传,支持的格式有*.jpg,*.jpeg,*.gif,*.png");
return false;
}
}
break;
}
}
}
分享到:
相关推荐
在本例中,我们关注的是使用WebWork框架在Java环境中实现文件上传。WebWork是一个轻量级的MVC(Model-View-Controller)框架,它提供了处理HTTP请求和响应的强大工具,包括文件上传。 首先,我们需要了解WebWork的...
在本文中,我们将深入探讨如何使用WebWork框架来实现一个简单的图片上传功能,并在网页上显示上传的图片。WebWork是Java Web开发中的一种MVC(Model-View-Controller)框架,它提供了一种优雅的方式来处理用户请求、...
在本教程中,我们将探讨如何利用WebWork实现文件上传功能,特别是针对Excel文件的处理。 首先,理解WebWork的MVC模式至关重要。在WebWork框架中,控制器负责接收用户请求,调用业务逻辑,并将结果传递给视图进行...
在这个“WebWork 文件上传 多个文件上传 范例”中,我们将深入探讨如何使用WebWork实现多文件上传的功能。 首先,了解文件上传的基本原理是必要的。在HTTP协议中,文件上传通常通过POST请求实现,其中包含了...
### WebWork 上传文件知识点详解 #### 一、WebWork框架简介 WebWork是一个基于Java的开源Web应用程序框架,它...以上内容覆盖了如何在WebWork框架下实现文件上传与下载的主要步骤和技术细节,希望对大家有所帮助。
本篇文章将深入探讨如何在WebWork框架下实现多文件上传,并结合实际案例进行解析。 首先,了解WebWork框架的基本原理是必要的。WebWork通过Action类处理HTTP请求,它将用户交互与业务逻辑分离,提供了一种优雅的...
在Web开发中,文件上传和下载是常见的功能需求,本Demo展示了如何在WebWork框架下实现这两个操作。 首先,我们要理解上传和下载的基本原理。文件上传是指用户通过Web表单选择本地文件,然后将其发送到服务器的过程...
"fileupload+dwr2+webwork2实现带进度条上传文件"这个主题涉及到三个关键技术和组件:FileUpload、Direct Web Remoting (DWR) 和 WebWork2,它们协同工作以提供一个带有进度条的高效、用户友好的文件上传体验。...
在本文中,我们将深入探讨如何使用WebWork和iBatis框架来实现文件上传的功能。WebWork是一个基于Action的MVC(Model-View-Controller)框架,而iBatis则是一个SQL映射框架,用于简化Java应用程序中的数据库操作。...
本篇文章将围绕"webwork 文件上传下载"这个主题,深入探讨WebWork框架下如何实现文件的上传和下载。 首先,让我们了解文件上传的基本概念。在Web应用中,文件上传通常涉及HTML表单、HTTP协议和服务器端处理。在...
总之,使用WebWork上传Excel并导入MySQL数据库是一项常见的任务,涉及到前端交互、文件上传处理、Excel解析和数据库操作等多个技术领域。理解并熟练掌握这些知识点对于开发企业级应用至关重要。在实践中,不断优化和...
在.NET框架中,C#语言提供了丰富的功能来实现文件上传和图片上传的处理。这篇文章将深入探讨如何使用C#在Web应用中实现这些功能,并在网页上按比例显示上传的图片。 首先,我们需要理解文件上传的基本流程。在Web...
本文主要从三个方面给大家介绍webwork文件上传下载知识,包括以下三个方面: 1. 包装 Request 请求 2. 获取文件上传的解析类 3. 项目实战配置和使用 Web上传和下载应该是很普遍的一个需求,无论是小型网站还是大...
本文将深入探讨WebWork2.2.7中的简单文件上传功能,这在现代Web应用中是必不可少的,允许用户上传图片、文档等各种类型的数据。 在Web开发中,文件上传通常涉及到表单提交和服务器端的处理。WebWork2.2.7支持使用...
此外,"webwork上传文件.txt"可能是一个文本文件,其中包含了WebWork文件上传的源代码示例。通常,这样的文件会包含Action类的代码,展示如何处理上传的文件,包括获取`Part`对象,验证文件,以及将文件保存到服务器...
虽然原文件中没有详细介绍G-Roller-WW的实际应用案例,但这一部分可能涉及如何将WebWork与G-Roller(一个博客平台)结合使用,包括集成JSTL、解决中文问题等。 #### WebWork与其它开源项目的集成 WebWork可以与...
总结来说,这个教程深入讲解了如何在WebWork 2.2.7环境中使用Apache Commons FileUpload来实现文件上传功能,包括配置、源代码实例以及异常处理。通过遵循这些步骤,开发者可以构建健壮的文件上传功能,同时处理大...
webwork上传文件pdf文件说明文档
在WebWork中实现文件上传和下载功能是常见的需求,以下是对这些功能的详细解释。 **一、WebWork文件上传** 1. **前端页面**:在HTML页面中,我们需要一个`<input type="file">`标签让用户选择要上传的文件。例如:...