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 上传的所有内容 包括文件以及名值对都预先缓存下来。其中,文件缓存在磁盘上,名值对缓存在内存中。

因此,本适配器构造的时候,需要四个参数:

  1. 临时文件存放的目录
  2. 数据缓冲区大小,建议设置为8192
  3. HTTP 请求的编码方式。
  4. 临时文件的最大数量
本适配器提供了四个构造函数,最简单的一个只有一个参数,需要你提供一个临时文件目录,缓冲区大小默认为8192, 临时文件数目默认的为 "2000",HTTP 请求的编码方式为 "UTF-8",

为了能让入口函数了解 HTTP 请求的更多信息,本适配器入口函数声明更多的参数类型:

当然,这三种参数,都是需要你在入口函数的参数列表里声明 '@Param' 注解,用来告诉本适配器,你的参数 具体取自请求中的哪一个参数。

Html5流式上传(实验性)的注意事项: 参数名默认是filedata,除非req.getHeader("Content-Disposition")中有描述另外的name

作者:
zozoh(zozohtnt@gmail.com), wendal(wendal1985@gmail.com)
另请参见:
Param

字段摘要
 
从类 org.nutz.mvc.adaptor.AbstractAdaptor 继承的字段
injs, method
 
构造方法摘要
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)
           
 
从类 org.nutz.mvc.adaptor.AbstractAdaptor 继承的方法
adapt, evalInjector, init, paramNameInject
 
从类 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