webwork中jsp上传图片问题!!
我用的webwork框架。 我在作一个jsp页面,中页面中有写信息和上传图片。然后实现提交到数据库中。请问这个图片上传的功能怎么实现啊?
[解决办法]
<%@ page import= "org.apache.commons.fileupload.* "%>
<!--文件上传的包在的资源里-->
<FORM action= "../QU_BJDWH/SendEmail.jsp " enctype= "multipart/form-data " method= "post " name= "form1 " id= "form1 " onSubmit= "return checkonsubmit() " >
<input type= "hidden " id= "state " name= "state " value= "yy ">
<div>
<table border= "0 " cellpadding= "3 " cellspacing= "0 " align= "center ">
<tr>
<td >
<nmttag:label id= "BAS_BJDYJ.lbl_operation_center " value= "QU_BJDSDEM.ReceiveEmail " />
</td>
<td >
<nmttag:text id= "QU_BJDSDEM.ReceiveEmail " width= " <%=new Integer(410)%> " value= " <%= resieve%> " /> *
</td>
</tr>
<tr>
<td>
<nmttag:label id= "BAS_BJDYJ.lbl_operation_center " value= "QU_BJDSDEM.CCEmail " />
</td>
<td>
<nmttag:text id= "QU_BJDSDEM.SendEmailMan " width= " <%=new Integer(410)%> " value= " <%= sende%> " />
</td>
</tr>
<tr>
<td>
<nmttag:label id= "BAS_BJDYJ.lbl_email_title " value= "BAS_BJDYJ.lbl_email_title " />
</td>
<td>
<nmttag:text id= "BAS_BJDYJ.txtEmail_title " value= " <%=titles %> " width= " <%=new Integer(410)%> " fieldLength= " <%=new Integer(100)%> "/>
</td>
</tr>
</table>
<div align= "center ">
</div>
<table border= "0 " cellpadding= "3 " cellspacing= "0 " align= "center ">
<tr>
<td>
<nmttag:label id= "BAS_BJDYJ.lbl_email_content " value= "BAS_BJDYJ.lbl_email_content " />
</td>
<td >
<nmttag:textarea id= "BAS_BJDYJ.txtEmail_content " value= " <%= content%> " cols= " <%= new Long(65)%> " rows= " <%= new Long(8)%> " fieldLength= " <%=new Integer(400)%> "/>
</td>
</tr>
<tr>
<td>
<nmttag:label id= "BAS_BJDYJ.lbl_email_title " value= "QU_BJDSDEM.Annex " />
</td>
<td>
<nmttag:label id= "BAS_BJDYJ.lbl_email_title " value= " <%= resultshowreportname.toString()%> " />
</td>
</tr>
<tr>
<td>
</td>
<td>
<script type= "text/javascript "> Attachment(10); </script>
</td>
</tr>
</table>
</div>
<div align= "center ">
<input type= "submit " name= "Submit " value= " <%=MLUtils.getResourceString( "QU_BJDSDEM.lblSend ")%> ">
</div>
</FORM>
在jsp中注意form的属性[enctype= "multipart/form-data "]
request.getSession().removeAttribute( "state ");
String uploadPath =sm.getEmailConfig( "uploadPath ");
File testdir = new File(uploadPath); //为了保证目录存在,如果没有则新建该目录
if (!testdir.exists()) {
testdir.mkdirs();
}
DiskFileUpload fu = new DiskFileUpload();
// 设置最大文件尺寸,这里是4MB
fu.setSizeMax(50194304);
// 设置缓冲区大小,这里是50kb
fu.setSizeThreshold(14096);
// 得到所有的文件:
List fileItems = fu.parseRequest(request);
FileItem file_item;
for(int i=0;i <fileItems.size();i++)
{
file_item=(FileItem)fileItems.get(i);
}
Iterator i = fileItems.iterator();
// 依次处理每一个文件:
String EmailTitle=null;
String Emailcctem=null;
List ToEmaillist=new ArrayList();
List ToCCEmail=new ArrayList();
List Urllist =new ArrayList();
while (i.hasNext()) {
FileItem fi = (FileItem) i.next();
// 检查当前的项目是普通的表单元素,还是一个上载的文件
if (fi.isFormField()) {
// 获得表单域的名字
if (fi.getFieldName().equals( "QU_BJDSDEM.ReceiveEmail "))
{
String ToEmail =fi.getString();
String[] tt = st.split(ToEmail, "; ");
for(int j=0;j <tt.length;j++)
{
ToEmaillist.add(tt[j]);
}
// System.out.println( "ToEmail is [ "+ToEmail+ "] ");
}
if (fi.getFieldName().equals( "QU_BJDSDEM.SendEmailMan "))
{
String CCEmail =fi.getString();
if(CCEmail!=null && ! " ".equals(CCEmail))
{
String[] cc = st.split(CCEmail, "; ");
for(int h=0;h <cc.length;h++)
{
ToCCEmail.add(cc[h]);
}
}else
{
ToCCEmail.add( " ");
}
}
if (fi.getFieldName().equals( "BAS_BJDYJ.txtEmail_title "))
{
EmailTitle =fi.getString( "UTF-8 ");
//String vl= ch.getstring(EmailTitle);
// System.out.println( "EmailTitle is [ "+vl+ "] ");
}
if (fi.getFieldName().equals( "BAS_BJDYJ.txtEmail_content "))
{
Emailcctem =fi.getString( "UTF-8 ");
// System.out.println( "Emailcctem is [ "+Emailcctem+ "] ");
}
String fieldName = fi.getFieldName();
}
// 获得文件名,这个文件名包括路径:
String fileName = fi.getName();
if (!(fileName == null)) {
// 写入文件,暂定文件名为a.txt,可以从fileName中提取文件名:
String uploadFileName = fileName.substring(fileName.trim().lastIndexOf( "\\ ") + 1);
//File GetSizeFile= new File(uploadPath+uploadFileName);
//System.out.println(uploadPath+uploadFileName);
Urllist.add(uploadPath+uploadFileName);
/*FileSize =FileSize+GetSizeFile.length();*/
fi.write(new File(uploadPath + uploadFileName));
pathlist.add(uploadPath+uploadFileName);
}
}
if(Urllist.size()> 0)
{
for(int h=0;h <Urllist.size();h++)
{
File GetSizeFile= new File(Urllist.get(h).toString());
//System.out.println(uploadPath+uploadFileName);
FileSize =FileSize+GetSizeFile.length();
}
}
实现上传的sourse
希望能对你有所帮助