图片上传处理架构

banq 02-08-15

图片上传因为Form表头是
<form name="form1" action="../multipartformtransfer.jsp" method="post" enctype="multipart/form-data">

这样就不能用Jsp的通用request.getParameter()来获得参数,但是我们可以做一个类似这样的接口,比如叫Mrequest.getParameter();

最重要的是,我们还要对上传图片进行处理,图片文件名改名;转移到指定目录;图片如果超过特定长宽可以自动压缩,这些功能处理完成后,再将其他非file字段原封不动的传出。

我使用两个类 一个jsp来完成这些工作:
public abstract class MultipartFormHandle{
这是完成上述图片各种处理功能。
public class Multipartformtransfer extends MultipartFormHandle{
这是结合特定应用的一些处理,比如移动文件等。
还有一个Multipartformtransfer.jsp

<%@ page import="mysite.utils.*" %>
<jsp:useBean id="myEnv" scope="session" class="mysite.web.UserEnvFront"/>
<jsp:useBean id="Multipartformtransfer" scope="application" class="mysite.web.Multipartformtransfer"/>


<%
//Remember transfer uploaded logo picture from homedir to userdir !!!!!
Multipartformtransfer.init(Multipartformtransfer.getTMPUploaddir(),request);

String forward=Multipartformtransfer.getForwardProgram();
if (forward.equals(""))
{
out.println("no forward program");
return;
}
String param=Multipartformtransfer.getForwardProgramParam();
Multipartformtransfer.clear();

response.sendRedirect(forward+"?"+param);

%>

这个Jsp的scope是appliction,适合集中处理系统中所有有关图片上传功能,可适合多批图片同时上传。相当于servlet.

看看一个client Jsp程序如何调用:
<FORM METHOD="POST" ACTION="multipartformtransfer.jsp" ENCTYPE="multipart/form-data" name="frmSelection" onSubmit="return validate()">
<input type="hidden" name="<%=Multipartformtransfer.FORWARDNAME%>" value="<%=request.getRequestURI()%>">
<input type="file" name="logo" size="20" style="font-family:verdana; font-size:11px">
<input type="hidden" name="<%=Multipartformtransfer.MAXWIDTHPARAMNAME%>" value="120" >
<input type="hidden" name="<%=Multipartformtransfer.MAXHEIGHTPARAMNAME%>" value="120" ><br>
<input type="Image" src="images/buildsite_button_next.gif" onMouseOver="this.style.cursor='hand'">
</form>

这个form的action是Multipartformtransfer.jsp,参数forward也是自己,意思是让Multipartformtransfer.jsp处理好图片后,再原封不动的转发回来。这是我们就可以和正常方式一样使用request.getParameter()来处理form中的参数了。

jyogou
2002-09-06 20:07

我也在研究图片上传的问题
有个问题想请教

如何把一张上传后的图片做成较小的缩略图?
java中如何打开图片,然后缩小图片,然后保存为另一张小图,请指教.

banq
2002-09-06 22:02

我有专门文章介绍,近期我会将此功能增加到jive(J道)版本中,请注意相关通告,也欢迎你加入jive的开发中来

jyogou
2002-09-06 22:43

能否告知图片缩小介绍文章的地址?
我目前正在研究jive系统,已经基本熟悉其框架和设计模式

有个问题,能否细致的分析一下jive采用proxy模式的好处呢?

jyogou
2002-09-07 10:22

已经找到您关于图片缩小的文章
谢谢

关于linux上要安装x11支持的问题
是否只要任何版本的linux装过xwindow支持就可以使用java.awt的包,反之就不行?
那么java.swing的包呢是否也是一样?

2Go 1 2 下一页