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

相关文章

来自专栏菩提树下的杨过

maven: 打包可运行的jar包(java application)及依赖项处理

IDE环境中,可以直接用exec-maven-plugin插件来运行java application,类似下面这样: 1 <plugin> 2 <g...

1929
来自专栏java相关

SpringBoot搭建web项目

1433
来自专栏LIN_ZONE

javaweb中的乱码问题(初次接触时写)

注:上面的解决办法是我遇到问题时解决的方法,如果不管用或者是有其它情况的话可以:[参考文1],(http://blog.csdn.net/chenghui031...

825
来自专栏向治洪

微信小程序开发入门篇

本文档将带你一步步创建完成一个微信小程序,并可以在手机上体验该小程序的实际效果。 开发准备工作 获取微信小程序的 AppID 登录 https://mp.wei...

2776
来自专栏编程之旅

iOS开发——在CocoaPods发布个人第三方库

podspec 文件是 Pod 库的描述文件,每个 Pod 库必须有且仅有一个这样的文件。文件名需要与我们将要创建的 Pod 库的名称一致,如我将创建的 Pod...

892
来自专栏pangguoming

流媒体Red5服务自定义媒体文件路径

使用bean对自己的项目进行配置,更换默认的视频播放目录和视频录制目录.在0.6版的时候,

734
来自专栏栗霖积跬步之旅

异常:This application has no explicit mapping for /error, so you are seeing this as a fallback.

出现这个异常说明了跳转页面的url无对应的值. 原因1: Application启动类的位置不对.要将Application类放在最外侧,即包含所有子包  原因...

4966
来自专栏iKcamp

iKcamp出品|微信小程序|工具安装+目录说明|基于最新版1.0开发者工具初中级教程分享

第一章:小程序初级入门教程 工具安装 在上一节第 8 步所展示的页面中,可以点击 开发者工具 直接进入到下载页面,也可以直接访问 官网下载地址。然后根据自己的设...

2079
来自专栏web开发

前后端分离ueditor富文本编辑器的使用-Java版本

最近在写一个自己的后台管理系统(主要是写着玩的,用来熟悉后端java的知识,目前只是会简单的写点接口),想在项目中编写一个发布新闻文章的功能,想到了使用百度的u...

7088
来自专栏pangguoming

C# WCF 完整实例,winform 窗体作为 宿主

上一次提到,我们的WCF程序宿主是发布到IIS上面的。虽然这样做未尝不可,不过不便于我们进行“开始”或“停止”WCF服务的操作。所以再次尝试了编写以窗体应用程序...

4654

扫码关注云+社区