在jsp中实现文件上传可用的类库很多比如有着名的jspsmart公司SmartUploadstruts里面也有我这里说说cos它是OReilly公司的OReilly的图书是很错的这个上传的组件也做得很棒最重要的是它是open source的 下载最新的cos包()加入到你的classpath中 编写一个需要上传文件的jsp为了方便我就用一个简单的htm文件了在这个页面中我们让用户一次可以上传个文件 ///////////////////////////////////////////////////////// <!DOCTYPE HTML PUBLIC //WC//DTD HTML Transitional//EN > <html> <head> <meta httpequiv=ContentType content=text/html;charset=gb> <title>无标题文档</title> </head> <body> <! enctype的值很重要uploadjsp为处理上传的jsp> <form name=formmethod=post enctype=multipart/formdata action=uploadjsp> <p> <input name=file type=file> </p> <p> <input name=file type=file> </p> <p><input name=file type=file> </p> <p> <input type=submit name=Submit value=上传> </p> </form > </body> </html> 在c:\下建一个目录c:\upload用来存放上传的文件 写一个jsp或者servlet来实现上传我这里用一个叫uploadjsp这样就不用配置webxml呵呵比较懒的说 ////////////////////////////uploadjsp//////////////////////// <%@page import=javaio*%> <%@page import=comoreillyservletMultipartRequest%> <%@page import=comoreillyservletmultipartCoverFileRenamePolicy%> <%@page contentType=text/html; charset=gb %> <% //文件上传后保存在c:\\upload String saveDirectory =c:\\upload; //每个文件最大m最多个文件所以 int maxPostSize = * * * ; //response的编码为gb同时采用缺省的文件名沖突解决策略实现上传 MultipartRequest multi = new MultipartRequest(request saveDirectory maxPostSize gb); //输出反馈信息 Enumeration files = multigetFileNames(); while (fileshasMoreElements()) { Systemerrprintln(ccc); String name = (String)filesnextElement(); File f = multigetFile(name); if(f!=null){ String fileName = multigetFilesystemName(name); String lastFileName= saveDirectory+\\ + fileName; outprintln(上传的文件:+lastFileName); outprintln(<hr>); } } %> <meta httpequiv=ContentType content=text/html;charset=gb> 最后把这个文件发布到你的服务器就行了上传文件就搞定啦以后你想在你邮件系统里面嵌入发送附件的功能用这个来做上传也不错啊 |