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 条评论
登录 后参与评论

相关文章

来自专栏有趣的Python

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

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

4635
来自专栏吴伟祥

Apache Velocity-----基于Java的模板引擎

Apache Velocity是一个基于Java的模板引擎,它提供了一个模板语言去引用由Java代码定义的对象。Velocity是Apache基金会旗下的一个开...

1.2K2
来自专栏阿杜的世界

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

762
来自专栏LinkedBear的个人空间

浅析RPC与WebService

虽然现在非常火的RPC技术以SpringCloud和Dubbo(x)为主流,但是如果做接口调用,还是逃不了要用一些较传统的技术。前几天在做接口调用时恰巧用到了W...

2411
来自专栏木木玲

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

1604
来自专栏用户2442861的专栏

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

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

2251
来自专栏蜉蝣禅修之道

Android Studio2.2下NDK开发初试

1825
来自专栏coderhuo

虚拟内存探究 -- 第四篇:malloc, heap & the program break

这是虚拟内存系列文章的第四篇,也是最后一篇。 本文主要介绍malloc和heap相关知识,以便回答上一篇文章结尾提出的一些问题:

1311
来自专栏A周立SpringCloud

Spring Boot、Dubbo项目Mock测试踩坑与总结

本文是对Spring Boot、Dubbo项目进行Mock测试的总结与踩坑实录。 搜索了一圈,居然没发现类似的文章,莫非用Dubbo的朋友们都不Mock测试,或...

6217
来自专栏菜鸟程序员

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

1682

扫码关注云+社区