add_brand.jsp中有关上传文件的组件:
<html:form action="/control/brand/manage" method="post" enctype="multipart/form-data" onsubmit="return checkfm(this)">
<tr bgcolor="f5f5f5">
<td width="22%" > <div align="right">logo图片:</div></td>
<td width="78%"> <input type="file" name="logofile"></input>
</td>
</tr>
</html:form>
BrandManageAction.java中用来处理上传文件的代码:
public ActionForward add(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
BrandForm formBean = (BrandForm)form;
Brand brand = new Brand();
brand.setName(formBean.getName());
if(formBean.getLogofile()!= null && formBean.getLogofile().getFileSize()>0){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd/HH");
String logopathdir = "/image/brand/" + sdf.format(new Date());//构建图片保存的目录
//得到图片保存目录的真实路径
String logorealpathdir = request.getSession().getServletContext().getRealPath(logopathdir);
System.out.println("-----------------------in BrandManageAction logorealpathdir is:" + logorealpathdir);
System.out.println("-----------------------in BrandManageAction logopathdir is:" + logopathdir);
运行结果是:
-----------------------in BrandManageAction logorealpathdir is:C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\baba1.1\image\brand\2009\09\28\16
-----------------------in BrandManageAction logopathdir is:/image/brand/2009/09/28/16
//创建文件目录
File logosavedir = new File(logorealpathdir);
//如果目录不存在就创建
if(!logosavedir.exists()){
logosavedir.mkdirs();
}
//得到上传文件的名字
String fileName = formBean.getLogofile().getFileName();
//得到上传文件的扩展名,如.gif,.jpg
String ext = fileName.substring(fileName.lastIndexOf("."));
//构建文件保存时候的文件名
String imageName = UUID.randomUUID().toString() + ext;
try {
FileOutputStream fops = new FileOutputStream(new File(
logorealpathdir, imageName));
fops.write(formBean.getLogofile().getFileData());
fops.close();
} catch (Exception e) {
// TODO: handle exception
}
String logopath = "/baba1.1" +logopathdir + "/" + imageName;
brand.setLogopath(logopath);
}
brandService.save(brand);
request.setAttribute("message", "品牌添加成功");
return mapping.findForward("message");
}
分享到:
相关推荐
在Struts2框架中,处理文件上传是一项常见且重要的功能,尤其当涉及到大文件上传时,往往会遇到上传文件大小超过预设限制的问题。这不仅影响用户体验,还可能导致应用程序出现异常或错误。本文将深入探讨如何解决...
同时,你还需要提供一个`validate`方法来验证上传文件的大小、类型等,以确保安全性和合规性。最后,你可以选择将文件移动到服务器的某个持久化目录,而不是保留在临时目录。 接下来,我们讨论文件下载。在Struts2...
在这段代码中,问题出在`fos.write(bs);`这一行。这里的问题在于没有正确指定要写入的字节数。当从输入流中读取数据时,每次读取的数据量可能不同,因此直接使用整个数组来写入输出流会导致未读取的部分也被写入,...
这段代码中,`execute()`方法负责处理文件的保存过程。通过遍历`uploadFile`列表中的每一个文件,读取文件流并将其写入到指定的位置。这里还用到了`savePath`变量来表示文件保存的路径,该路径通常是在Web应用的`WEB...
这段代码展示了一个基本的文件上传表单。关键点包括: - `enctype="multipart/form-data"`:此属性指定了表单数据的编码方式,对于文件上传来说非常重要。 - `action="upload.action"`:指定了处理上传请求的Action...
5. **处理上传文件**:在Action的`execute`方法中,你可以访问到上传的文件,进行必要的业务逻辑处理,如验证文件类型、大小等。如果一切正常,可以将文件移动到服务器的某个目录下。 6. **返回结果**:根据文件...
标题“struts代码”及描述“不错的struts代码,可以使新手上路的必经之道”指向了一段关于Struts框架使用的代码示例,特别关注于Struts2实现多文件上传和下载的功能。这段代码对于初学者而言是宝贵的资源,能够帮助...
这段代码会将保存的图片生成大小为100x100像素的缩略图,并保存到指定路径。 一旦图片上传并生成缩略图,你需要在Action类中返回一个结果,这个结果应该指向一个JSP页面,展示上传的图片。在JSP页面中,可以使用`...
- **验证文件类型**: 检查上传文件是否为允许的格式(如`jpg`、`txt`、`bmp`),如果不是,则返回错误页面。 - **生成文件名**: 使用当前时间戳加上文件扩展名来生成唯一的文件名。 - **计算文件大小**: 获取文件的...
这段代码将上传的文件保存到了"uploads/"目录下。 四、错误处理 Struts2提供了异常处理机制,当文件上传过程中出现问题时,可以通过`addFieldError()`方法添加错误信息,并返回INPUT结果,用户会被重定向到输入...
在Struts2中,文件上传功能是一项常用且重要的特性,它允许用户在Web应用中上传文件到服务器。为了实现这一功能,开发者通常需要依赖特定的库,如Apache Commons FileUpload和Apache Commons IO。以下是关于Struts2...
在Struts2中实现文件上传是一项常见的需求,这通常涉及到客户端浏览器与服务器之间的数据交互,以及服务器端对上传文件的处理。下面我们将深入探讨如何在Struts2框架下实现文件上传。 首先,我们需要在HTML表单中...
在上述代码中,'uploader'属性指定了SWF文件的位置,'script'属性定义了文件上传的目标Action,其他属性如'onUploadStart', 'onUploadProgress'和'onUploadSuccess'则是回调函数,用于在不同阶段处理逻辑。...
在Struts2中,文件上传和下载是常见的功能需求,尤其对于处理用户交互和数据交换的Web应用来说至关重要。下面我们将详细探讨Struts2.0中的文件上传和下载实现。 ### 一、文件上传 文件上传在Struts2中主要依赖于...
本文将深入探讨如何使用Struts2进行文件上传,并通过具体的代码示例来解释其实现细节。 #### 二、Struts2文件上传基础概念 **1. Struts2文件上传概述** Struts2框架提供了一种简单而强大的方式来处理HTTP请求中的...
在实际开发中,为了防止DoS攻击和确保上传安全,你需要对文件大小进行限制,并验证上传文件的扩展名,确保只有特定类型的文件才能被接受。 总结来说,Struts1.2与Commons-Fileupload的结合使用,提供了一个简单而...
这段代码展示了如何从请求中获取文件,以及如何将文件保存到服务器的指定路径。 接下来,我们讨论文件下载。在服务器端,我们需要创建一个Servlet,该Servlet能够读取文件内容并将其作为响应返回给客户端。以下是一...
1. **读取文件流**:通过`new FileInputStream(myFile)`创建输入流`is`,读取上传文件的数据。 2. **确定保存路径**:`uploadPath`变量通过`ServletActionContext.getServletContext().getRealPath("/upload")`获取...
- 文件上传的过程中需要考虑安全性问题,如防止XSS攻击、限制上传文件类型等。 - 进度条的更新频率可以通过调整`setTimeout("process()",100);`中的时间值来控制。 - 为了提高用户体验,可以考虑增加错误提示、支持...
- `fileupload`代码示例:这是一段展示如何使用Apache Commons FileUpload库的Java代码,可能包括创建Servlet或Controller来处理上传请求,读取和保存上传文件等步骤。 - `jar包`:这是Apache Commons FileUpload的...