org.nutz.mvc.upload
类 UploadAdaptor
java.lang.Object
org.nutz.mvc.adaptor.AbstractAdaptor
org.nutz.mvc.adaptor.PairAdaptor
org.nutz.mvc.upload.UploadAdaptor
- 所有已实现的接口:
- HttpAdaptor
public class UploadAdaptor
- extends PairAdaptor
本适配器专门处理 HTTP 文件上传(1.b.44及之后的版本,兼容Html5的流式上传)。 它支持多文件,多参数上传。具体的做法是将 HTTP 上传的所有内容
包括文件以及名值对都预先缓存下来。其中,文件缓存在磁盘上,名值对缓存在内存中。
因此,本适配器构造的时候,需要四个参数:
- 临时文件存放的目录
- 数据缓冲区大小,建议设置为8192
- HTTP 请求的编码方式。
- 临时文件的最大数量
本适配器提供了四个构造函数,最简单的一个只有一个参数,需要你提供一个临时文件目录,缓冲区大小默认为8192, 临时文件数目默认的为 "2000",HTTP
请求的编码方式为 "UTF-8",
为了能让入口函数了解 HTTP 请求的更多信息,本适配器入口函数声明更多的参数类型:
- java.io.File : 指向已上传至临时目录的文件对象
- org.nutz.mvc.upload.FieldMeta : 描述了一个上传参数的更多属性
- org.nutz.mvc.upload.TempFile : 组合了 File 和 FieldMeta
当然,这三种参数,都是需要你在入口函数的参数列表里声明 '@Param' 注解,用来告诉本适配器,你的参数 具体取自请求中的哪一个参数。
Html5流式上传(实验性)的注意事项: 参数名默认是filedata,除非req.getHeader("Content-Disposition")中有描述另外的name
- 作者:
- zozoh(zozohtnt@gmail.com), wendal(wendal1985@gmail.com)
- 另请参见:
Param
构造方法摘要 |
UploadAdaptor()
|
UploadAdaptor(java.lang.String path)
|
UploadAdaptor(java.lang.String path,
int buffer)
|
UploadAdaptor(java.lang.String path,
int buffer,
java.lang.String charset)
|
UploadAdaptor(java.lang.String path,
int buffer,
java.lang.String charset,
int poolSize)
|
UploadAdaptor(java.lang.String path,
int buffer,
java.lang.String charset,
int poolSize,
int maxFileSize)
|
UploadAdaptor(UploadingContext context)
|
方法摘要 |
protected ParamInjector |
evalInjectorBy(java.lang.reflect.Type type,
Param param)
子类实现这个方法根据自己具体的逻辑来生产一个参数注入器 |
UploadingContext |
getContext()
|
java.util.Map<java.lang.String,java.lang.Object> |
getReferObject(javax.servlet.ServletContext sc,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response,
java.lang.String[] pathArgs)
|
从类 java.lang.Object 继承的方法 |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
UploadAdaptor
public UploadAdaptor()
throws java.io.IOException
- 抛出:
java.io.IOException
UploadAdaptor
public UploadAdaptor(UploadingContext context)
UploadAdaptor
public UploadAdaptor(java.lang.String path)
UploadAdaptor
public UploadAdaptor(java.lang.String path,
int buffer)
UploadAdaptor
public UploadAdaptor(java.lang.String path,
int buffer,
java.lang.String charset)
UploadAdaptor
public UploadAdaptor(java.lang.String path,
int buffer,
java.lang.String charset,
int poolSize)
UploadAdaptor
public UploadAdaptor(java.lang.String path,
int buffer,
java.lang.String charset,
int poolSize,
int maxFileSize)
getContext
public UploadingContext getContext()
evalInjectorBy
protected ParamInjector evalInjectorBy(java.lang.reflect.Type type,
Param param)
- 从类
AbstractAdaptor
复制的描述
- 子类实现这个方法根据自己具体的逻辑来生产一个参数注入器
- 覆盖:
- 类
PairAdaptor
中的 evalInjectorBy
- 参数:
type
- 参数类型param
- 参数的注解
- 返回:
- 一个新的参数注入器实例
getReferObject
public java.util.Map<java.lang.String,java.lang.Object> getReferObject(javax.servlet.ServletContext sc,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response,
java.lang.String[] pathArgs)
- 覆盖:
- 类
AbstractAdaptor
中的 getReferObject