编程语言
首页 > 编程语言> > uploadify的java应用

uploadify的java应用

作者:互联网

API:http://www.uploadify.com/documentation/

下载地址:http://www.uploadify.com/

这几天查看插件,发现uploadify插件做不错,查了一些资料,总结笔记一下。

项目文件截图:

lib如图;

web.xml代码:

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">UploadifyJavaindex.jspUpFileServletUpFileServlet<servlet-class>com.horizon.action.UpFileServletclass>UpFileServlet/UpFileServlet

UpFileServlet.java代码:

package com.horizon.action;

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

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;/**
 * Servlet implementation class UpFileServlet */public class UpFileServlet extends HttpServlet {    private static final long serialVersionUID = 1L;    /**
     * @see HttpServlet#HttpServlet()     */
    public UpFileServlet() {
        super();        // TODO Auto-generated constructor stub    }    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
     *      response)     */
    @SuppressWarnings({ "unchecked", "rawtypes" })    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {        // 获得参数
        String timestamp = request.getParameter("timestamp");
        String token = request.getParameter("token");
        System.out.println(timestamp);
        System.out.println(token);        // 获得文件
        String savePath = this.getServletConfig().getServletContext()
                .getRealPath("");
        savePath = savePath + "/uploads/";
        File f1 = new File(savePath);
        
        System.out.println(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) {
            System.out.println(ex.getMessage());            return;
        }
        
        Iteratorit = fileList.iterator();
        String name = "";
        String extName = "";        while (it.hasNext()) {
            FileItem item = it.next();            if (!item.isFormField()) {
                name = item.getName();                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);
                } while (file.exists());
                File saveFile = new File(savePath + name + extName);                try {
                    item.write(saveFile);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
        response.getWriter().print(name + extName);
    }    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
     *      response)     */
    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

}

index.jsp代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">UploadiFive Test<script src="js/jquery-1.8.0.min.js" type="text/javascript"><script src="js/uploadify/jquery.uploadify.min.js"
    type="text/javascript"><link rel="stylesheet" type="text/css" href="js/uploadify/uploadify.css"><style type="text/css">body {
    font: 13px Arial, Helvetica, Sans-serif;
}Uploadify Demo for java<div id="queue">

<input id="file_upload" name="file_upload" type="file" multiple="true" />        <a href="javascript:$('#file_upload').uploadify('upload')">开始上传&nbsp;        <a href="javascript:$('#file_upload').uploadify('cancel')">取消所有上传        <script type="text/javascript">        $(function() {            var timestamp = new Date().getTime();            $('#file_upload').uploadify({                'formData' : {                    'timestamp' : timestamp,                    'token' : 'unique_salt' + timestamp                },// 设置想后台传递的参数 如果设置该参数,那么method应该设置为get,才能得到参数                'swf' : 'js/uploadify/uploadify.swf',// 指定swf文件                'uploader' : 'UpFileServlet',// 后台处理的页面                'cancelImg' : 'js/uploadify/uploadify-cancel.png',// 取消按钮图片路径                "queueID" : 'queue',// 上传文件页面中,你想要用来作为文件队列的元素的id, 默认为false  自动生成,  不带#                'method' : 'get',// 设置上传格式                'auto' : false,// 当选中文件后是否自动提交                'multi' : true,// 是否支持多个文件上传                'simUploadLimit' : 2,                'buttonText' : '选择文件',// 按钮显示的文字                'onUploadSuccess': function (file, data, response) {// 上传成功后执行                    $('#' + file.id).find('.data').html(' 上传完毕');                 }            });        });    

期间在上传参数时,发现无法传送,经过查CSDN的资料,可以设置method参数为get,来解决问题。

针对,上传是complete转为中文,jquery.uploadify.js源码下图:

得出结论。


另外还有html5版本,需要的话可以查看官网

标签:java,name,timestamp,uploadify,request,应用,import
来源: https://blog.51cto.com/u_2870645/2849614