commons-fileupload 可以不可以在上传文件之前取得form中参数的值?
<form enctype="multipart/form-data" ...> 这个设置, 好像不可以.
原来用smartupload可以, 但是不能传大文件所以改用这个.
问题就来了. 我想在客户端指定上传的目录, 比如/data/0222 或 /data/abc,
所以要在上传之前检查下用户对目录的权限(不是操作系统权限).
所以要在上传之前得到form中的一些信息还有个问题请教, 如果是传个几百MB的大文件, 我看是先传到临时目录, 再移动到其他目录, 这个很耗资源, 也很花时间啊 :( 有什么办法吗? 或是我的需求达不到.
<form enctype="multipart/form-data" ...> 这个设置, 好像不可以.
原来用smartupload可以, 但是不能传大文件所以改用这个.
问题就来了. 我想在客户端指定上传的目录, 比如/data/0222 或 /data/abc,
所以要在上传之前检查下用户对目录的权限(不是操作系统权限).
所以要在上传之前得到form中的一些信息还有个问题请教, 如果是传个几百MB的大文件, 我看是先传到临时目录, 再移动到其他目录, 这个很耗资源, 也很花时间啊 :( 有什么办法吗? 或是我的需求达不到.
现在改用FileUplaod了.servlet是不能得到. 不只要在javascript中有没有好的解决方法.
<body>
<div id="contentDiv">
<form action="FileUpload" method="post" enctype="multipart/form-data" name="fileUploadForm" target="target_upload" id="fileUploadForm" onsubmit="return startStatusCheck();">
<input id="datafileOfFileUploadForm" type="file" size="60" name="datafileOfFileUploadForm" /><br />
<input id="pathOfFileUploadForm" value="/aa" name="pathOfFileUploadForm" /><br />
<input name="submit" type="submit" id="submitOfFileUploadForm" value="Submit" />
</form>
</body>FileUpload就是上传的servlet.现在我就是想在上传文件之前
List items = upload.parseRequest(request);就得到/aa这个值. 然后判断是否允许上传.唉...
弄一个中间页,就是你提交的时候先到这个页面,然后判断,如果符合你的条件,用javascript代码(javascript:history.back(),这个相当于后退,页面不会刷新)返回上传附件的页面上传.如果在中间页判断出不符合条件就直接在中间页报错,这样就可以避免楼主所说的现象.
我这么说不知道楼主名不明白,个人感觉可以.
public class TestFilter implements Filter { public void init(FilterConfig filterConfig) throws ServletException { }
public void destroy() {
}
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws
IOException, ServletException {
}
}
这3个方法分别在web容器(象tomcat)启动时、满足条件时和运用停止时被web容器调用,需要使用过滤器,需要在web.xml文件中进行配置:
<filter>
<filter-name>TestFilter</filter-name>
<filter-class>包.TestFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>TestFilter</filter-name>
<url-pattern>/web路径/FileUpload</url-pattern>
</filter-mapping>
经过配置后,当客户端访问>/web路径/FileUpload这个servlet时,将执行TestFilter这个过滤器的doFilter方法,这个方法有3个参数,这3个参数是由web容器注入的,前两个不用说,用他们就可以完成搂主的判断及不满足条件时的重定向,第3个在过滤通过时用来调用下个过滤器(可配置多个),也就是在doFilter的末尾写上这么一句:chain.doFilter(request, response);
确实和这个<form enctype="multipart/form-data" ...> 有关,13楼的方法可行