Struts上传文件总结

一.上传文件过程(以上传头像为例)

1.头像文件通过jsp的表单提交到add.action进行处理

  注意 1)表单的enctype属性设置为multipart/form-data

     2)上传方式为post方法

<form id="form" name="form" action="${basePath}nsfw/user_add.action" method="post" enctype="multipart/form-data">

<input type="file" name="headImg"/>

2.add.action接收到上传来的file对象,用JSP中input表单的name属性值headImg封装文件内容,headImgContentType封装文件类型

headImgFileName封装文件名称,由于是Struts2自动帮我们封装。所以如果jsp中input表单的name属性值为X,那么对应其他两个就必须

为XContentType和XFileName.

private File headImg;

private String headImgContentType;

private String headImgFileName;

3.由于提交过来的file会在add()方法执行完后,自动被删除掉。我们要把它复制到一个指定的我们指定的文件WebRoot的upload/user下。

1)获取指定文件路径

String filePath=ServletActionContext.getServletContext.getRealPath();

2)用UUID+headImgFileName防止文件因重复而被覆盖

String fileName=UUID.randomUUID().toString() + headImgFileName+headImgContentType;

3)用FileUtil把临时文件复制到指定文件下(new File(目录,目录/文件))

FileUtil.copyFile(headImg,new File(filePath,fileName));

4.将文件名称封装到User中,并保存进数据库.

1)user.setHeadImg("user/" + fileName);

2) service.save(user);

5.查出现在数据库中所有数据,用jsp呈现在列表页面上

  以上是我自学过程中,做SSH项目练习时,对Struts2上传文件的总结,如有纰漏,望各位前辈指出,敝人将不胜感激。

时间: 2024-10-10 01:23:34

Struts上传文件总结的相关文章

struts 上传文件 Dynavalidatorform 实例

一.相关jar包     一个空struts工程的jar包:    另上传文件的两个jar包: 二.页面 1.上传页面upload.jsp 1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 pageEncoding="utf-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Tra

利用Struts上传文件

在利用struts2完成上传文件到服务器时,遇到获取不到文件名 原因是在Action中的属性名没有和jsp中的属性名匹配 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"

Struts上传文件

编写jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title></title> </head&

struts 上传文件

文件上传的时候struts会使用默认18个拦截器中的<interceptor name="fileUpload" class="org.apache.struts2.interceptor.FileUploadInterceptor"/>进行处理. 文件上传Action类: Action类中定义三个属性: private File file1; 对应表单:<input type="file" name="file1&q

struts使用html:file上传文件的时候文件名乱码解决

<body> <html:form action="/jwid/struts1x/15.3/form/upload.do?action=upload" enctype="multipart/form-data"> 文件:<html:file property="file" style="width:200px;"></html:file><br> 备注:<htm

struts利用插件jqueryupload上传文件,后台处理文件代码

package cn.axhu.education.action.file; import cn.axhu.education.common.FileSystemConfig;import cn.axhu.education.common.utils.FileUtils;import net.ruixin.web.struts2.SimpleActionSupport;import org.apache.struts2.convention.annotation.Action;import or

java配置ueditor中解决“未找到上传文件”错误提示

ueditor是一个功能十分强大的在线文本编辑器,但是在ssh框架中,确切的说实在struts2中由于其拦截器需要对request,session对象进行重新封装,这个过程中会把request对象中保存的一些内容清空,所以会导致ueditor的上传功能获取不到需要上传的内容导致“未找到上传文件”的错误! 参考网上资料和自己实验,最终的解决思路是,重写struts2中的一个转换的类,然后配置struts2使用我们重写的这个类.由于我们的工程中可能会有其他的上传等功能,为了不影响其他功能的时候,还需

uploadify上传文件

页面部分: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@include file="/common/taglibs.jsp"%> <%@ page import="com.cattsoft.baseplatform.func.sm.entity.SysU

Android上传文件至服务器(转)

本实例实现每隔5秒上传一次,通过服务器端获取手机上传过来的文件信息并做相应处理:采用Android+Struts2技术. 一.Android端实现文件上传 1).新建一个Android项目命名为androidUpload,目录结构如下: 2).新建FormFile类,用来封装文件信息 package com.ljq.utils; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExce