package io.vertx.example.web.upload;

import io.vertx.core.AbstractVerticle;
import io.vertx.example.util.Runner;
import io.vertx.ext.web.FileUpload;
import io.vertx.ext.web.Router;
import io.vertx.ext.web.handler.BodyHandler; /*
* @author <a href="http://tfox.org">Tim Fox</a>
*/
public class Server extends AbstractVerticle { // Convenience method so you can run it in your IDE
public static void main(String[] args) {
Runner.runExample(Server.class);
} @Override
public void start() throws Exception { Router router = Router.router(vertx); // Enable multipart form data parsing
router.route().handler(BodyHandler.create().setUploadsDirectory(System.getProperty("java.io.tmpdir"))); router.route("/").handler(routingContext -> {
routingContext.response().putHeader("content-type", "text/html").end(
"<form action="/form" method="post" enctype="multipart/form-data">n" +
" <div>n" +
" <label for="name">Select a file:</label>n" +
" <input type="file" name="file" />n" +
" </div>n" +
" <div class="button">n" +
" <button type="submit">Send</button>n" +
" </div>" +
"</form>"
);
}); // handle the form
router.post("/form").handler(ctx -> {
ctx.response().putHeader("Content-Type", "text/plain"); ctx.response().setChunked(true); for (FileUpload f : ctx.fileUploads()) {
System.out.println("f");
ctx.response().write("Filename: " + f.fileName());
ctx.response().write("n");
ctx.response().write("Size: " + f.size());
} ctx.response().end();
}); vertx.createHttpServer().requestHandler(router::accept).listen(8080);
}
}

您可以使用vertx-web轻松处理文件上传:

router.route().handler(BodyHandler.create());

router.post("/some/path/uploads").handler(routingContext -> {

    Set<FileUpload> uploads = routingContext.fileUploads();
// Do something with uploads....
});

而且,您将利用路由功能,甚至可以提供诸如index.html之类的静态文件

Vertx上传 官网Demo Java版的更多相关文章

  1. Java 银联支付官网demo测试及项目整合代码

    注:原文来源与 < Java 银联支付官网demo测试及项目整合代码  > 银联支付(网关支付B2C) 一.测试官网demo a)下载官网开发包,导入eclipse等待修改(下载的开发包没 ...

  2. 官网下载java相关资源

    官网下载java相关资源 官网地址:http://www.oracle.com 一.下载JDK 1.首先进入Downloads >> Java For Developers,如图 2.点击 ...

  3. 如何在官网下载java JDK的历史版本

    如何在官网下载java JDK的历史版本 http://jingyan.baidu.com/article/9989c746064d46f648ecfe9a.html 如何在官网下载java JDK的 ...

  4. jqgrid--api,官网demo,编辑

    api参考: http://blog.csdn.net/hurryjiang/article/details/7551477 官网demo: http://www.trirand.com/blog/j ...

  5. 十分钟掌握Pandas(上)——来自官网API

    十分钟掌握Pandas(上)——来自官网API 其实不止10分钟,这么多,至少一天 一.numpy和pandas numpy是矩阵计算库,pandas是数据分析库,关于百度百科,有对pandas的介绍 ...

  6. webpack官网demo起步中遇到的问题

    在webpack官网demo一开始搭建中 

  7. FTP上传下载文件(函数简易版)

    FTP上传下载文件(函数简易版) # 服务端 import socket import json import hashlib import struct import os user_dic = { ...

  8. 最后一面挂在volatile关键字上,面试官:重新学学Java吧!

    最后一面挂在volatile关键字上,面试官:重新学学Java吧! 为什么会有volatile关键字? volatile: 易变的; 无定性的; 无常性的; 可能急剧波动的; 不稳定的; 易恶化的; ...

  9. 用jQuery File Upload做的上传控件demo,支持同页面多个上传按钮

    需求 有这么一个需求,一个form有多个文件要上传,但又不是传统的图片批量上传那种,是类似下图这种需求,一开始是用的swfupload做的上传,但是问题是如果有多个按钮的话,就要写很多重复的代码,于为 ...

随机推荐

  1. JVM 参数配置

    JAVA_OPTS="-server -Xms2048m -Xmx2048m -Xmn512m -Xss256k -XX:PermSize=256m -XX:MaxPermSize=256m ...

  2. rsync 未授权访问漏洞

    rsync rsync,remote synchronize顾名思意就知道它是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限.时间.软硬链接等附加信息. rsync是用 &qu ...

  3. 安装爬虫 scrapy 框架前提条件

    安装爬虫 scrapy 框架前提条件 (不然 会 报错) pip install pypiwin32

  4. idea中git标签(tag)的创建与使用

    1.什么是标签 通常,发布一个版本时,会在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本.将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来. 所以,标签也是 ...

  5. fiddler---Fiddler修改数据信息

    在测试的过程中,可能我们会遇到需要修改一些数据查看请求返回内容是如何的,刚好Fiddler也可以满足我们的要求,Fiddler不仅可以抓包还可以修改包的内容 Fiddler修改数据原理 Fiddler ...

  6. 【BZOJ2138】stone(线段树+hall定理)

    传送门 题意: 现在有\(n\)堆石子,每堆石子有\(a_i\)个. 之后会有\(m\)次,每次选择\([l,r]\)的石子堆中的石子扔\(k\)个,若不足,则尽量扔. 现在输出\(1\)~\(m\) ...

  7. 《CarbonData》

      深度访谈:华为开源数据格式 CarbonData 项目,实现大数据即席查询秒级响应   Tina 阅读数:145842016 年 7 月 13 日 19:00   华为宣布开源了 CarbonDa ...

  8. MySQL学习笔记4——DQL

    DQL(数据查询语言) 一.基本查询 1.字段(列)控制1)查询所有列SELECT * FROM 表名; ->"*"表示查询所有列 2)查询指定列SELECT 列1 [, 列 ...

  9. USACO Corn Fields

    洛谷 P1879 [USACO06NOV]玉米田Corn Fields 洛谷传送门 题目描述 Farmer John has purchased a lush new rectangular past ...

  10. 第十 构建Web内容的技术

    第十章 构建Web内容的技术 一.HTML HTML(HyperText Markup Language,超文本标记语言)是为了发送Web 上的超文本(Hypertext)而开发的标记语言.超文本是一 ...