struts框架-实现文件上传

总体思路:struts框架内部实现了将文件上传的功能

                 例如:

                        1、jsp页面form表单: <form action="<%=basePath%>jsp/upload.action" method="post" enctype="multipart/form-data">
                                                              <input type="file" name="uploadFile"/><br>
                                                               <input type="submit" value="上传">
                                                       </form>

                        (注意:一定要写enctype="multipart/form-data",不然默认文件无法上传)

                        2、.xml配置文件,这个和寻常的一样,就不写了

                        3、action文件:private File uploadFile;
                                                  private String uploadFileFileName;
                                                  public File getUploadFile() {
                                                           return uploadFile;
                                                   }
                                                  public void setUploadFile(File uploadFile) {
                                                           this.uploadFile = uploadFile;
                                                    }
                                                  public String getUploadFileFileName() {
                                                           return uploadFileFileName;
                                                    }
                                                  public void setUploadFileFileName(String uploadFileFileName) {
                                                                 this.uploadFileFileName = uploadFileFileName;
                                                    }

                                 在方法体中写System.out.println(uploadFile),即是struts框架将我们上传的文件放到的临时地方;uploadFileFileName是我们上传文件的文件名

 

接下来,我们要做的工作实则是将struts帮我们实现上传的那个文件拷贝到我们指定的文件夹中即可。

                实现代码(新建一个UploadFileCopyUtil类):

                                 package com.onlineproject.util;

                                 import java.io.File;
                                 import java.io.FileInputStream;
                                 import java.io.FileNotFoundException;
                                 import java.io.FileOutputStream;
                                 import java.io.IOException;
                                 import java.io.InputStream;
                                 import java.io.OutputStream;

                                 public class UploadFileCopyUtil {

                                public static String copy(File sourceFile, String destDirPath,
                                               String destFileName) throws IOException {

                                          InputStream inputStream = null;
                                          OutputStream outputStream = null;
                                   try {
                                          inputStream = new FileInputStream(sourceFile);

                                          File distDir = new File(destDirPath);
                                          if (!distDir.exists()) {
                                                   distDir.mkdirs();
                                            }
                                         File destFile = new File(distDir.getAbsolutePath() + "/"
                                                                               + destFileName);

                                         if (destFile.exists()) {
                                                      destFileName = System.currentTimeMillis() + "_" + destFileName;
                                                      destFile = new File(distDir.getAbsolutePath() + "/"
                                                                                           + destFileName);
                                          }

                                         // 创建输出流
                                          outputStream = new FileOutputStream(destFile);

                                         // 读出输入流的数据,并且放到输出流
                                           byte datas[] = new byte[1024];

                                          while (true) {
                                                   int len = inputStream.read(datas);
                                                    if (len == -1) {
                                                                        break;
                                                      }
                                                  byte destDatas[] = new byte[len];
                                                  if (len < 1024) {
                                                           System.arraycopy(datas, 0, destDatas, 0, len);
                                                           outputStream.write(destDatas);

                                                    } else {
                                                            outputStream.write(datas);
                                                     }

                                            }

                                    } catch (FileNotFoundException e) {
                                              e.printStackTrace();
                                    } finally {

                                     try {
                                             inputStream.close();
                                             outputStream.close();
                                          } catch (IOException e) {
                                                     e.printStackTrace();
                                             }
                                         }

                                            return destFileName;
                                    }
                           }

调用代码(action方法体中):public String upload(){
                                                 File file = new File(TestUploadAction.class.getResource("/").getFile());
                                                 System.out.println(file.getParentFile().getParentFile().getAbsolutePath()+"/upload");
                                                 String saveStr;
                                                  try {
                                                        saveStr = UploadFileCopyUtil.copy(uploadFile, file.getParentFile().getParentFile().getAbsolutePath()+"/upload", uploadFileFileName);
                                                  } catch (IOException e) {
                                                         e.printStackTrace();
                                                  }
                                                         return "success";
                                                   }

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值