uploadify3.2上传完成后服务器端有null文件??????????????

蜡笔小新_ 发布于 2014/06/18 09:05
阅读 594
收藏 0

使用的是uploadify3.2,上传一个zip文件后在服务器端的目录下出现了一个null文件:

请问大家遇到过没有,真心没找到原因。

觉得应该是后台的代码问题吧,后台代码先贴出来了:(JSP+servlet)

package com.ft.servlet;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

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.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.util.Streams;

import com.sun.xml.internal.bind.CycleRecoverable.Context;

public class TestServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/html;charset=UTF-8");
		//先固定好文件要上传到服务器中的位置文件夹
		String fileUploadPath=this.getServletContext().getRealPath("/")+"\\Upload";
		File tempDirPath=new File(fileUploadPath);
		//如果该文件路径不存在就创建这个文件夹
		if (!tempDirPath.exists()) {
			tempDirPath.mkdirs();
		}
		// 创建磁盘文件工厂
		DiskFileItemFactory fac = new DiskFileItemFactory();
		//创建servlet文件上传组件
		ServletFileUpload upload = new ServletFileUpload(fac);
		//使用utf-8的编码格式处理数据
		upload.setHeaderEncoding("utf-8");
		//上传的文件列表
		List fileList = null;
		// 获取从前台上传过来的文件的集合
		try {
			fileList = upload.parseRequest(request);
		} catch (Exception e) {
			e.printStackTrace();
			return;
		}			
		//由于要取得前台的参数需要用map来取每个文件的key,所以这里需要创建一个map
		Map<String, String> map=new HashMap<String, String>();
		//遍历这个文件集合
		Iterator<FileItem> it = fileList.iterator();
		while (it.hasNext()) {
			FileItem item = it.next();//每一个文件
			map.put(item.getFieldName(), item.getString());
			String itemName=item.getName();//获取文件名字
			BufferedInputStream in = new BufferedInputStream(item.getInputStream());
			System.out.println(in);
			BufferedOutputStream out = 
					new BufferedOutputStream(new FileOutputStream(new File(tempDirPath+"\\"+itemName)));
			Streams.copy(in, out, true);
		}
		////////////////////////////////获取前台传递的动态参数
		String canshu=map.get("canshu");
		PrintWriter out = response.getWriter();
		out.write("1");
		out.close();
	}

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

		this.doGet(request, response);
	}



}

我在控制台里打印了上面代码中的fileList的个数:竟然有4个!我明明上传了一个文件,后台接收的fileList的个数怎么会有4个呢很诧异了,然后我又在循环中将每个文件的名字打印出来看了一下,依次是:

null
null
easyUI总结.zip
null

这么多的null是什么原因呢????貌似又不是后台的问题,我反复的看了前台也么问题啊,前台的属性和事件我就算都删的山不多了还是这么输出的!!!求解!!!!!!




加载中
0
java_speed
java_speed
看不出问题。应该是别人上传了一个“null”文件。另外,推荐使用断点续传的上传插件: http://www.oschina.net/search?scope=project&q=stream
蜡笔小新_
蜡笔小新_
谢谢,但是我还是想弄明白为什么有个null。
返回顶部
顶部