【Struts2】文件的上传与上传权限的控制
来源:互联网 发布:js escape html 编辑:程序博客网 时间:2024/05/16 07:55
- package test;
- //用到了输入流,必须的支持
- import java.io.*;
- //这个是为了取出Upload这个文件夹的绝对路径
- import org.apache.struts2.ServletActionContext;
- //这是Struts2必要的支持
- import com.opensymphony.xwork2.ActionSupport;
- //防止报序列号警告
- @SuppressWarnings("serial")
- //Struts2必须继承这个类
- public class upload extends ActionSupport {
- //上传文件Action固有的两个属性fileContentType不是必须的
- //但一定要设置好getter与setter,这是Struts2固有的特点。
- //设置完getter与setter一定不可以在执行方法中再次初始化,如String xx=
- //这样前台会取不值的!
- private File file;
- private String fileFileName;
- //saveFileName是保存到服务器的名字
- //利用传来过的文件的后缀名+时间戳构造,
- //必要时还可以补上用户名
- private String saveFileName;
- //这是文件的大小,主要是为了传到前台
- private String fileLength;
- private String errMsg;
- //防止输入输出流报警告
- @SuppressWarnings("resource")
- public String run() throws Exception {
- //对错误信息字符串赋予""值,否则会返回前台一个null
- errMsg = "";
- //判断是否符合上传的条件
- boolean canUpload = true;
- //取出Upload的绝对路径
- String saveFilePath = ServletActionContext.getServletContext()
- .getRealPath("/Upload");
- //取出上传文件的后缀名
- String fileExtensions = getFileFileName().substring(
- getFileFileName().lastIndexOf("."));
- //根据后缀名判断是否能上传
- if (!(fileExtensions.equals(".gif") || fileExtensions.equals(".png")
- || fileExtensions.equals(".jpeg")
- || fileExtensions.equals(".jpg") || fileExtensions
- .equals(".bmp"))) {
- errMsg += "上传文件只能是图片,后缀名必须是bmp,gif,jpg,jpeg!";
- canUpload = false;
- }
- //根据文件大小判断是否能上传
- if (file.length() > (2 * 1024 * 1024)) {
- errMsg += "上传文件太大,请少于2M!";
- canUpload = false;
- }
- //把文件大小转化成字符串,推回给前台
- fileLength = (file.length() / 1024) + "KB";
- //如果可以上传
- if (canUpload) {
- //就营造一个服务器上的文件名
- saveFileName = System.currentTimeMillis() + fileExtensions;
- //输出流是保存到服务器的输出流
- FileOutputStream fos = new FileOutputStream(saveFilePath + "/"
- + saveFileName);
- //输入流就是传过来的文件
- FileInputStream fis = new FileInputStream(getFile());
- //缓冲数组
- byte[] buffer = new byte[1024];
- int len = 0;
- //输入流不停读东西到缓冲数组,直到读完
- while ((len = fis.read(buffer)) > 0) {
- //输出流不停把缓冲数组的东西的东西写到服务器上Upload的绝对目录上面
- fos.write(buffer, 0, len);
- }
- //返回struts.xml一个成功结果
- return "success";
- } else {
- return "error";
- }
- }
- //所有静态成员必须有getter与setter,否则不能与前台交互
- public File getFile() {
- return file;
- }
- public void setFile(File file) {
- this.file = file;
- }
- public String getFileFileName() {
- return fileFileName;
- }
- public void setFileFileName(String fileFileName) {
- this.fileFileName = fileFileName;
- }
- public String getSaveFileName() {
- return saveFileName;
- }
- public void setSaveFileName(String saveFileName) {
- this.saveFileName = saveFileName;
- }
- public String getErrMsg() {
- return errMsg;
- }
- public void setErrMsg(String errMsg) {
- this.errMsg = errMsg;
- }
- public String getFileLength() {
- return fileLength;
- }
- public void setFileLength(String fileLength) {
- this.fileLength = fileLength;
- }
- }
0 0
- 【Struts2】文件的上传与上传权限的控制
- 【Struts2】文件的上传与上传权限的控制
- 文件上传与下载权限的控制
- Struts2的文件上传
- Struts2的文件上传
- Struts2的文件上传
- struts2的文件上传
- Struts2 的文件上传
- struts2的文件上传
- Struts2文件的上传
- Struts2文件的上传
- struts2的文件上传
- Struts2文件的上传
- struts2的文件上传
- Struts2的文件上传
- struts2文件的上传
- Struts2的文件上传
- struts2 的文件上传
- 如何学习Linux
- [LeetCode]Maximal Square
- Kerberos认证实验
- 闭包——藏在代码中的“房间”,用于和外界沟通的桥梁
- hdu 1465 不容易系列之一(错位排序)
- 【Struts2】文件的上传与上传权限的控制
- Win8 解决错误 1406。安装程序无法将值OSE.exe写入注册表项。无法保存对main权限所作的更改
- 【ActionScript】ActionScript2.0的Helloworld
- 勾股定理
- 文件与目录的默认权限与隐藏权限
- Android 学习之路(一) —— WebSiteDoor
- OC包装类
- 又发现一款好用的popup插件(jquery.fancybox.js)
- 黑马程序员——Java基础---常用类(下)