zoukankan      html  css  js  c++  java
  • 图片上传问题(含网页图片预览)

    所需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";

  • 相关阅读:
    windows ntstatus.h 头文件
    Android Q 后台启动 Activity
    windows 删除文件夹所有文件夹及文件代码
    Android 加壳App Demo
    Android App 签名保护demo
    RXAndroidBle 记录网址
    c++ windows 获取系统时间
    js 代码保存
    day33 ansible
    day31 综合实时同步服务
  • 原文地址:https://www.cnblogs.com/liudong/p/1211978.html
Copyright © 2011-2022 走看看