注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

jiwenxu的博客

CODE

 
 
 

日志

 
 

JSP上传  

2007-07-15 10:50:01|  分类: J2EE |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 JSP文件上传

用到组件:FileUpload组件,commons-fileupload-1.2.jar,commons-fileupload.jar,还有一个就是commons-io-1.3.1.jar

然后我们就可以上传文件了!!!

我的的网页可以这样写:(只写一个form)

<FORM action="FileUploadServlet" method="post"enctype="multipart/form-data" name="uploadform">
<INPUT type="file" name="uploadfile">
<INPUT type="submit" value="upload">
</FORM>

下面是它的Servlet处理

--------------------------------------------------------------------------------------------------------------------

response.setContentType("text/html");
PrintWriter out = response.getWriter();
//图片上传路径
uploadPath =request.getRealPath("/")+"upload/images/";
//图下临时上传路径
tempPath = request.getRealPath("/")+"upload/images/temp/";
//数据库中图片网络相对路径
StringimagePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath()+"/";
//数据库中图片网络URL
String imageUrl=null;
//文件夹不存在就自动创建:
if(!new File(uploadPath).isDirectory())
new File(uploadPath).mkdirs();
if(!new File(tempPath).isDirectory())
new File(tempPath).mkdirs();
try {
DiskFileUpload fu = new DiskFileUpload();
// 设置最大文件尺寸,这里是4MB
fu.setSizeMax(4194304);
// 设置缓冲区大小,这里是4kb
fu.setSizeThreshold(4096);
// 设置临时目录:
fu.setRepositoryPath(tempPath);

// 得到所有的文件:

List fileItems = fu.parseRequest(request);
Iterator i = fileItems.iterator();
// 依次处理每一个文件:
while(i.hasNext()) {
FileItem file = (FileItem)i.next();
// 获得文件名,这个文件名是用户上传时用户的绝对路径:
String fileName = file.getName();
//看文件以什么结束
//System.out.println(fileName.endsWith(".gif"));

if(fileName!=null&&(fileName.endsWith(".jpg")||fileName.endsWith(".gif")||fileName.endsWith(".doc"))){
// 在这里可以记录用户和文件信息
// 生成上传后的文件名
String filename=null;
Random rd = new Random();
Calendar time = Calendar.getInstance();
if(fileName.endsWith(".jpg")){
filename=String.valueOf(time.get(Calendar.YEAR))
+ String.valueOf(time.get(Calendar.MONTH))
+ String.valueOf(time.get(Calendar.DAY_OF_MONTH))
+ String.valueOf(time.get(Calendar.HOUR_OF_DAY))
+ String.valueOf(time.get(Calendar.MINUTE))
+ String.valueOf(time.get(Calendar.SECOND))
+ String.valueOf(rd.nextInt(100)) + ".jpg";
}else if(fileName.endsWith(".gif")){
filename=String.valueOf(time.get(Calendar.YEAR))
+ String.valueOf(time.get(Calendar.MONTH))
+ String.valueOf(time.get(Calendar.DAY_OF_MONTH))
+ String.valueOf(time.get(Calendar.HOUR_OF_DAY))
+ String.valueOf(time.get(Calendar.MINUTE))
+ String.valueOf(time.get(Calendar.SECOND))
+ String.valueOf(rd.nextInt(100)) + ".gif";
}else{
filename=String.valueOf(time.get(Calendar.YEAR))
+ String.valueOf(time.get(Calendar.MONTH))
+ String.valueOf(time.get(Calendar.DAY_OF_MONTH))
+ String.valueOf(time.get(Calendar.HOUR_OF_DAY))
+ String.valueOf(time.get(Calendar.MINUTE))
+ String.valueOf(time.get(Calendar.SECOND))
+ String.valueOf(rd.nextInt(100)) + ".doc";
}
File f1=new File(uploadPath+filename);
//打印相对路径
//System.out.print(f1.getAbsolutePath());
//数据库中存储图片路径为: http://127.0.0.1:8080/MailSend/upload/images/1.jpg
imageUrl=imagePath+"uploadPath"+"随机生成文件名";
//将路径写入到数据库
file.write(f1);
out.print("success!") ;

//System.out.println(fileName+"成功上传!");
}else{
out.println("上传文件出错,只能上传 *.jpg , *.gif , *.doc");
}
}
// 跳转到上传成功提示页面
}
catch(Exception e) {
// 可以跳转出错页面
}
out.flush();
out.close();
  评论这张
 
阅读(47)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018