java与jquery.uploadify实现文件上传

首先前端的页面要引入两个js文件和jQuery.js(要先引入jQuery.js才能在引入uploadify的js),

 

<script type="text/javascript" src="./js/jquery.js"></script> 

<script type="text/javascript" src="./js/uploadify/swfobject.js"></script>
<script type="text/javascript" src="./js/uploadify/jquery.uploadify.v2.1.4.js"></script>

 

<script type="text/javascript">
$(function(){

     //图片上传
    $("#picFile").uploadify( {//初始化函数
        'uploader': '${ctx }/js/uploadify/uploadify.swf',        
        'cancelImg': '${ctx }/js/uploadify/cancel.png',           
        'script' :'${ctx }/servlet/FileUpLoad',//后台处理的请求
        'queueID' :'maxQueue',//与下面的上传文件列表id对应
        'queueSizeLimit' :1,//上传文件的数量
       // 'scriptData':{'a':'value1','b':'value2'},//向后台传的数据
        'fileDesc' :'jpg,png,gif,bmp,jepg',//上传文件类型说明
        'fileExt' :'*.jpg;*.png;*.gif;*.bmp;*.jepg', //控制可上传文件的扩展名,启用本项时需同时声明fileDesc
        //'method':'get',//如果向后台传输数据,必须是get
        'sizeLimit':30000000,//文件上传的大小限制,单位是字节
        'auto' :true,//是否自动上传
        'multi' :false,
        //'simUploadLimit' :1,//同时上传文件的数量
        //'buttonText' :'BROWSE',//浏览按钮图片
        'buttonImg': '${ctx }/ui/frame/images/ps.jpg',
        'heigth'         :20,            
        'width'          : 50,
        'onSelect': function(e, queueId, fileObj){  
            $("#picPath").val(fileObj.name);    
        }
       });
    
});
</script>

下面是上传文件的工能按钮

      <tr>
              <th>图片新闻:</th>
              <td>
                 <input type="text" id="picPath" name="picPath" value="${oATouchColumn.picPath}" readonly="readonly"/>
                 <input type="file" id="picFile" name="picFile" value="浏览"/>
              </td>
        </tr>

 

然后是文件上传的后台代码是一个serlvet

package com.vingsoft.hardware.util;

import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;


/**
 * 文件上传 文件路径规则:tomcat下项目名+temp文件夹+用户ID文件夹+文件名
 * 
 * @author huzj
 * @describe
 * 
 */
@SuppressWarnings("serial")
public class FileUpLoad extends HttpServlet {

    @SuppressWarnings("unchecked")
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String savePath = this.getServletConfig().getServletContext()
                .getRealPath("");
        savePath = savePath + File.separator + "userfiles/uploadFile" + File.separator;
        File f1 = new File(savePath);
        if (!f1.exists()) {
            f1.mkdirs();
        }

        DiskFileItemFactory fac = new DiskFileItemFactory();
        ServletFileUpload upload = new ServletFileUpload(fac);
        upload.setHeaderEncoding("utf-8");
        List fileList = null;
        try {
            fileList = upload.parseRequest(request);
        } catch (FileUploadException ex) {
            return;
        }
        Iterator<FileItem> it = fileList.iterator();
        String name = "";
        String extName = "";
        while (it.hasNext()) {
            FileItem item = it.next();
            if (!item.isFormField()) {
                name = item.getName();
                name = updateFileName(name);
                long size = item.getSize();
                String type = item.getContentType();
                System.out.println(size + " " + type);
                if (name == null || name.trim().equals("")) {
                    continue;
                }

                // 扩展名格式:
                if (name.lastIndexOf(".") >= 0) {
                    extName = name.substring(name.lastIndexOf("."));
                }

                File file = null;
                do {
                    // 生成文件名:
                    // name = UUID.randomUUID().toString();
                    // file = new File(savePath + name + extName);
                    file = new File(savePath + name);
                } while (file.exists());
                // File saveFile = new File(savePath + name + extName);
                File saveFile = new File(savePath + name);
                try {
                    item.write(saveFile);
                } catch (Exception e) {
                    e.printStackTrace();

                }

            }

        }

        response.getWriter().print(name);
    }

    // 给上传的文件重新命名,防止重名
    public String updateFileName(String name) {
        /*
         * String rename = name.substring(0,
         * name.lastIndexOf("."))+System.currentTimeMillis();
         */
        String rename = name.substring(0, name.lastIndexOf("."));
        String extName = name.substring(name.lastIndexOf("."));
        return rename + extName;
    }
}
 

最后要在项目下的web.xml中添加路径配置,其中的内容要按照自己项目去改

  <servlet>
    <javaee:description>This is the description of my J2EE component</javaee:description>
    <javaee:display-name>This is the display name of my J2EE component</javaee:display-name>
    <servlet-name>FileUpLoad</servlet-name>
    <servlet-class>com.vingsoft.hardware.util.FileUpLoad</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>FileUpLoad</servlet-name>
    <url-pattern>/servlet/FileUpLoad</url-pattern>
  </servlet-mapping>

写好后点击上传按钮文件就会自动的上传了

文件所需的js等在审核,为uploadify.zip,用的时候可点作者的资源进去看看是否审核好了

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值