ActFramework中实现文件上传

ActFramework中实现文件上传

文件上传是一种常见的web应用功能。这篇小灶讲述如何在ActFramework中实现文件上传,包括单文件上传和多文件上传两种情况。

首先我们定义一个Model类Document用于演示单文件上传的情况:

public class Document implements SimpleBean {
    public String desc;
    public String subject;
    public File attachment;

    public Document(String subject, String desc, File attachment) {
        this.desc = desc;
        this.subject = subject;
        this.attachment = attachment;
    }
}

下面是处理单文件上传的请求响应函数:

@PostAction("/single")
public Document handleSingleFile(File file, String subject, String desc) {
    return new Document(subject, desc, file);
}

对应单文件上传的HTML Form:

<form action="/single" method="post" enctype="multipart/form-data">
  <div>
    <input name="subject" placeholder="subject">
  </div>
  <div>
    <input name="desc" placeholder="description">
  </div>
  <div>
    <input name="file" type="file" placeholder="file">
  </div>
  <div>
    <button type="submit">Submit</button>
  </div>
</form>

以上就是Act应用中处理单文件上传的一种方式。下面来看看多文件上传的处理方式。

先定义一个Model类用于演示多文件上传:

public class Archive implements SimpleBean {
    public String desc;
    public String subject;
    public File[] attachments;

    public Archive(String subject, String desc, File[] attachments) {
        this.desc = desc;
        this.subject = subject;
        this.attachments = attachments;
    }
}

处理多文件上传的请求响应函数:

@PostAction("/multi")
// Note the param type `File[]` can be changed to `List<File>`
public Archive handleMultipleFiles(File[] files, String subject, String desc) {
    return new Archive(subject, desc, files);
}

对应的多文件上传的HTML Form:

<form action="/multi" method="post" enctype="multipart/form-data">
  <div>
    <input name="subject" placeholder="subject">
  </div>
  <div>
    <input name="desc" placeholder="description">
  </div>
  <div>
    <input name="files" type="file" placeholder="file">
  </div>
  <div>
    <input name="files" type="file" placeholder="file">
  </div>
  <div>
    <input name="files" type="file" placeholder="file">
  </div>
  <div>
    <button type="submit">Submit</button>
  </div>
</form>

完整的源代码保存在码云

ActFramework: https://www.oschina.net/p/actframework

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏SpringBoot 核心技术

第四十五章:基于SpringBoot 设计业务逻辑异常统一处理

3284
来自专栏开发技术

spring-boot-2.0.3不一样系列之源码篇 - run方法(二)之prepareEnvironment,绝对有值得你看的地方

  此系列是针对springboot的启动,旨在于和大家一起来看看springboot启动的过程中到底做了一些什么事。如果大家对springboot的源码有所研...

1433
来自专栏菜鸟程序员

EternalBlue(永恒之蓝)工具漏洞利用细节分析

1062
来自专栏用户2442861的专栏

SpringMVC单文件上传、多文件上传、文件列表显示、文件下载

林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka

1811
来自专栏蜉蝣禅修之道

Android Studio2.2下NDK开发初试

1705
来自专栏木木玲

Netty in Action ——— Netty的组件和设计

1544
来自专栏小李刀刀的专栏

[译]Laravel 5.0 之命令及处理程序

本文译自 Matt Stauffer 的系列文章. ---- 本文中涉及的新功能都是关于 Commands 的,这些特性在 Laravel 旧版本中已经有了,但...

3406
来自专栏阿杜的世界

Java Web技术经验总结(十七)

702
来自专栏有趣的Python

Scrapy分布式爬虫打造搜索引擎 -(二)伯乐在线爬取所有文章Python分布式爬虫打造搜索引擎

Python分布式爬虫打造搜索引擎 基于Scrapy、Redis、elasticsearch和django打造一个完整的搜索引擎网站 二、伯乐在线爬取所有文章 ...

4275
来自专栏Kevin-ZhangCG

SpringMVC学习笔记之二(SpringMVC高级参数绑定)

3003

扫码关注云+社区