发布网友
共3个回答
热心网友
import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletInputStream;
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.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.dnion.contentpush.struts.BaseDispatchAction;
/**
* 提供web页面的提交的“文本”推送更新
* @author wxl
*
*/
public class WebTextPushAction extends BaseDispatchAction {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload fileUpload = new ServletFileUpload(factory);
//设置上传文件大小的上限,-1表示无上限
fileUpload.setSizeMax(-1);
List items = new ArrayList();
//上传文件,解析表单中包含的文件字段和普通字段
items = fileUpload.parseRequest(request);
//遍历字段进行处理
Iterator iterator = items.iterator();
while(iterator.hasNext()){
FileItem fileItem =(FileItem)iterator.next();
if(fileItem.isFormField()){//普通字段
}else{//文件字段
if("textfile".equals(fileItem.getFieldName())){
//上传;
}
}
}
return super.execute(mapping, form, request, response);
}
}
页面中form加上属性ENCTYPE="multipart/form-data"
热心网友
这种问题 更适合去百度 Java servlet 文件上传 然后随便找个例子,照着跑起来,就好了,然后最好能去 了解下 Http 中 传输参数和传输文件的差异。传输文件 对应的ContentType ,以及现在流行起来的 文件存储系统,OSS,这些东西,文件上传可能造成的跨域问题。了解了这些就好了。其实,能从一般的参数,延伸到文件,其实挺好的。
热心网友
参考代码
import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletInputStream;
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.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.dnion.contentpush.struts.BaseDispatchAction;
/**
* 提供web页面的提交的“文本”推送更新
* @author wxl
*
*/
public class WebTextPushAction extends BaseDispatchAction {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload fileUpload = new ServletFileUpload(factory);
//设置上传文件大小的上限,-1表示无上限
fileUpload.setSizeMax(-1);
List items = new ArrayList();
//上传文件,解析表单中包含的文件字段和普通字段
items = fileUpload.parseRequest(request);
//遍历字段进行处理
Iterator iterator = items.iterator();
while(iterator.hasNext()){
FileItem fileItem =(FileItem)iterator.next();
if(fileItem.isFormField()){//普通字段
}else{//文件字段
if("textfile".equals(fileItem.getFieldName())){
//上传;
}
}
}
return super.execute(mapping, form, request, response);
}
}
页面中form加上属性ENCTYPE="multipart/form-data"
<input name="textfile" type="file" value=“”/>