问题描述
请问大家在jsp中上传文件都是怎么上传的?是用框架里现成模块还是自己手写代码上传?
解决方案
解决方案二:
一般框架都集成了的。比如sruts2:<%@pagelanguage="java"contentType="text/html;charset=ISO-8859-1"pageEncoding="ISO-8859-1"%><%@taglibprefix="s"uri="/struts-tags"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><s:head/><title>HelloWorld</title></head><body><s:div>EmailForm</s:div><s:textname="Pleasefillintheformbelow:"/><s:formaction="hello"method="post"enctype="multipart/form-data"><s:hiddenname="secret"value="abracadabra"/><s:textfieldkey="email.from"name="from"/><s:passwordkey="email.password"name="password"/><s:textfieldkey="email.to"name="to"/><s:textfieldkey="email.subject"name="subject"/><s:textareakey="email.body"name="email.body"/><s:labelfor="attachment"value="Attachment"/><s:filename="attachment"accept="text/html,text/plain"/><s:token/><s:submitkey="submit"/></s:form></body></html>
解决方案三:
用框架的,commons-fileupload组件或servlet或struts都有自己的文件上传直接套用就是了servlet3.0的文件上传<center><formaction="sf"enctype="multipart/form-data"method="get">username:<inputtype="text"name="username"/><br>file:<inputtype="file"name="filename"/><br><inputtype="submit"value="Submit"/></form></center>
后台代码Enumeration<String>heads=request.getHeaderNames();while(heads.hasMoreElements()){Stringheader=heads.nextElement();System.out.println(header+"="+request.getHeader(header));}Partpart=request.getPart("filename");Collection<String>headerNames=part.getHeaderNames();for(Stringheader:headerNames){System.out.println(header+"="+part.getHeader(header));}InputStreamis=part.getInputStream();Stringfilename=newString(getFilename(part).getBytes(),"UTF-8");Filefile=newFile("D:\fileupload");if(!file.exists()||!file.isDirectory()){file.mkdir();}FileOutputStreamfos=newFileOutputStream(newFile(file+File.separator+filename));byte[]buf=newbyte[1024];while(is.read(buf)!=-1){fos.write(buf);}fos.flush();fos.close();is.close();
参考
解决方案四:
引用2楼magi1201的回复:
用框架的,commons-fileupload组件或servlet或struts都有自己的文件上传直接套用就是了servlet3.0的文件上传<center><formaction="sf"enctype="multipart/form-data"method="get">username:<inputtype="text"name="username"/><br>file:<inputtype="file"name="filename"/><br><inputtype="submit"value="Submit"/></form></center>后台代码Enumeration<String>heads=request.getHeaderNames();while(heads.hasMoreElements()){Stringheader=heads.nextElement();System.out.println(header+"="+request.getHeader(header));}Partpart=request.getPart("filename");Collection<String>headerNames=part.getHeaderNames();for(Stringheader:headerNames){System.out.println(header+"="+part.getHeader(header));}InputStreamis=part.getInputStream();Stringfilename=newString(getFilename(part).getBytes(),"UTF-8");Filefile=newFile("D:\fileupload");if(!file.exists()||!file.isDirectory()){file.mkdir();}FileOutputStreamfos=newFileOutputStream(newFile(file+File.separator+filename));byte[]buf=newbyte[1024];while(is.read(buf)!=-1){fos.write(buf);}fos.flush();fos.close();is.close();
参考
谢谢