action

package com.my.other;

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.List;

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

import org.apache.commons.fileupload.DiskFileUpload;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUpload;
import org.apache.commons.fileupload.ProgressListener;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class UploadAction extends Action {

public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {

request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("UTF-8");

UploadProgressListener pl = new UploadProgressListener(request);

long start_time = System.currentTimeMillis();

DiskFileUpload fu = new DiskFileUpload();
fu.setProgressListener(pl);
List items = fu.parseRequest(request);
System.out.println(items.size());
int flag = 0;
for (int i = 0; i < items.size(); i++) {
FileItem fi = (FileItem)items.get(i);
if (!fi.isFormField() && fi.getName().trim().equals("")) {
flag = 1;
}
}
if(flag == 1) {
response.getWriter().print("<root><message>上传失败</message></root>");
//throw new Exception("sfsdf");
}else{
System.out.println("sdfds");
for (int i = 0; i < items.size(); i++) {
FileItem fi = (FileItem)items.get(i);
if (fi.isFormField()) {
} else {
if ("".equals(fi.getName().trim())) {
continue;
}

//ȡ�ļ�����
String filename = fi.getName();
int pos = filename.lastIndexOf("\\");
filename = filename.substring(pos + 1);

fi.write(new File(this.getServlet().getServletContext().getRealPath("//")
+ "//files//" + filename));
}
}

long end_time = System.currentTimeMillis();
System.out.println("Used time:"  + (end_time - start_time ) );
response.getWriter().print("<root><message>上传成功</message></root>");
}
response.flushBuffer();
return null;
}

}

你可能感兴趣的:(java,apache,struts,servlet)