所需jar包
commons-io-current-bin.tar.gz包的三个文件全部放进lib中
commons-fileupload-1.2.1-bin.zip包中的commons-fileupload-1.2.1.jar放进去

上传图片的代码示例:

文件发送页
  send.jsp
  <html>
     <img id="img" name="img"/>
     <form action="accept.jsp" enctype="multipart/form-data">
       <input type="file" id="name"/>
       <input type="submit"/>
     </form>
//对加入的图片的预览
<script language="javascript">
 function previewA()
{
   var x = document.getElementById("name"); //singimage为FORM中已存在的IMAGE标签ID
   if(!x || !x.value)     return;
   var patn = /\.jpg$|\.jpeg$|\.gif$/i;           //正则表达式,判断所选文件是否图片
   if(patn.test(x.value))
    { 
     var img=document.getElementById('img');
     img.setAttribute('width','90');     
     img.setAttribute('height','120');
     img.src= 'file://localhost/' + x.value;
    }
    else
    {   
     alert("您选择的似乎不是图像文件。");
    }
 }
</script>
    
  </html>
要注意enctype值有:application/x-www-form-urlencoded,multipart/form-data,text/plain
     第一项是用来传送文件时的(设为此不可传参数),第二项是用来传送参数时用的(设为此不可传文件)

 

文件接收页
accept.jsp
//-----------------------------------先处理图书图片的问题------------
 try{  
     String loadpath=request.getSession().getServletContext().getRealPath("/")+"src//bookpic";//上传文件的存放目录
     String temp=request.getSession().getServletContext().getRealPath("/")+"src//bookpic//temp";   //临时目录
//   文件内容
     String FileDescription = null;
     // 文件名(包括路径)
     String FileName = null;
     // 文件大小
     long FileSize = 0;
     // 文件类型
     String ContentType = null;
     DiskFileUpload fu = new DiskFileUpload();//创建一个新的文件上传句柄
     // 设置允许用户上传文件大小,单位:字节
     fu.setSizeMax(200*1024*1024);
     // 设置最多只允许在内存中存储的数据,单位:字节
     fu.setSizeThreshold(1024 * 1024);
     // 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录
     fu.setRepositoryPath(temp);
    
     List fileItems = fu.parseRequest(request);
     Iterator iter = fileItems.iterator(); // 依次处理每个上传的文件
          while (iter.hasNext())
          {
           FileItem item = (FileItem)iter.next();// 忽略其他不是文件域的所有表单信息
           if (!item.isFormField())
           {
           String name = item.getName();//获取上传文件名,包括路径,如E:/em/22.jpg     
           long size = item.getSize();
           if((name==null||name.equals("")) && size==0)     continue;
           int point = name.indexOf(".");//为了取得扩展名,如:.jpg
           name=tsISBN+name.substring(point,name.length());//写入文件的名字liudong.jpg 
           tspicaddress=name;
           File fNew= new File(loadpath, name);//路径,文件名(c:/image,liudong.jpg).意思是:在c:/image下放liudong.jpg
           item.write(fNew);//写文件liudong.jpg
        }
        else //取出不是文件域的所有表单信息
         {
           String fieldvalue = item.getString();
    //如果包含中文应写为:(转为UTF-8编码)
           //String fieldvalue = new String(item.getString().getBytes(),"UTF-8");
         }
      }
 }catch(Exception fl){
  fl.printStackTrace();
 }
 tspicaddress=tsISBN+".jpg";

posted on 2008-06-02 11:04  tsliudong  阅读(595)  评论(0编辑  收藏  举报