`
jxqc_job
  • 浏览: 529 次
社区版块
存档分类
最新评论
收藏列表
标题 标签 来源
uploadify传参解决方法 uploadify传参解决方法
1.upload2.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<% 
	String path = request.getContextPath();
	String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
	pageContext.setAttribute("purpose", "Temp Offet");
	String p = "Temp Fianl123";
	String e = "Orange123";
	String u = p+e;
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>Insert title here</title>
		<base href="<%=basePath%>">
		<link href="<%=basePath%>uploadify2/uploadify.css" rel="stylesheet" type="text/css">
		<script type="text/javascript" src="<%=basePath%>uploadify2/jquery-1.4.2.min.js"></script>
		<script type="text/javascript" src="<%=basePath%>uploadify2/swfobject.js"></script>
		<script type="text/javascript" src="<%=basePath%>uploadify2/jquery.uploadify.v2.1.4.min.js"></script>
	</head>
<body>
<div id="fileQueue"></div>
	<input type="file" name="uploadify" id="uploadify" />
    <p>
        <a href="javascript: jQuery('#uploadify').uploadifyUpload()">开始上传</a> 
		<a href="javascript:jQuery('#uploadify').uploadifyClearQueue()">取消所有上传</a>
	</p>
</body>
<script type="text/javascript">
	//官方网址:http://www.uploadify.com/
	$(document).ready(function(){
		//$("#uploadify").uploadifySettings('scriptData',	{'name':'liudong','age':22});
		$("#uploadify").uploadify({
			'uploader'	:	"<%=basePath%>uploadify2/uploadify.swf",
			'script'    :	"<%=basePath%>/servlet/UploadPhotoServlet?act=upload123<%=u%>@",
			'cancelImg' :	"<%=basePath%>uploadify2/cancel.png",
			'folder'	:	"uploads",//上传文件存放的路径,请保持与uploadFile.jsp中PATH的值相同
			'queueId'	:	"fileQueue",
			'queueSizeLimit'	:	10,//限制上传文件的数量
			'fileExt'	:	"*.rar,*.zip,*.png,*.txt",
			//'fileDesc'	:	"RAR *.rar",//限制文件类型
			'auto'		:	false,
			'multi'		:	true,//是否允许多文件上传
			'simUploadLimit':	2,//同时运行上传的进程数量
			'buttonText':	"files",
			//'scriptData':	{'act':'liudong','purpose':'External'},//这个参数用于传递用户自己的参数,此时'method' 必须设置为GET, 后台可以用request.getParameter('name')获取名字的值
			'method'	:	"GET",
			'onUploadSuccess':function(file,data,response){
				alert(file.name);
			}
		});
		
		//$("#uploadify").uploadifySettings();
	});
</script>
</html>


2. UploadPhotoServlet.java

package com.org.servlet;

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
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;


@SuppressWarnings("serial")
public class UploadPhotoServlet extends HttpServlet {

	/**
	 * Constructor of the object.
	 */
	public UploadPhotoServlet() {
		super();
	}

	
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request, response);
	}

	@SuppressWarnings({ "rawtypes", "unchecked" })
	public void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		String param = req.getParameter("act");
		String[] act = param.split("@");
//		System.out.println(act[0]);
		System.out.println("act-->"+act[0].split("123")[0]);
		if(!"upload".equals(act[0].split("123")[0])){
			return ;
		}
		System.out.println("purpose-->"+act[0].split("123")[1]);
		System.out.println("purpose-->"+act[0].split("123")[2]);
		String savePath = this.getServletConfig().getServletContext().getRealPath("");
		System.out.println("-----"+savePath);
		savePath = savePath+"/uploads/";
		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(req);
		} catch (FileUploadException e) {
			e.printStackTrace();
		}
		if(fileList==null){
			resp.getWriter().print("No file upload!");
			return;
		}
		Iterator<FileItem> it = fileList.iterator();
		String name = "";
		String extName = "";
		while(it.hasNext()){
			FileItem item = it.next();
			if(!item.isFormField()){//isFormField介绍:true=表单输入 域,false=文件上传域。
				name = item.getName();
				//long size = item.getSize();
				//String type = item.getContentType();
				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();
				}
			}
		}
		resp.getWriter().print(name+extName);
		
	}

}
Global site tag (gtag.js) - Google Analytics