本文实例为大家分享了java实现文件上传的具体代码,具体内容如下
1 java::
com.github.reston.servlet;导入java.io.file; import java.io.fileOutputstream; import java.io.io.ioexception; import java.io.printwriter; import java java.util.itel.itel.terrator; import java.util.list; import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;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.FileItemFactory;import org.apache.commons.fileupload.disk.DiskFileItemFactory;import org.apache.commons.fileupload.servlet.ServletFileUpload;import org.apache.commons.io.ioutils; @webservlet(“/ajaxupload”)public类ajaxupload扩展了httpservlet {@override public void init(servletConfig config)抛出servletException {// todo auto-nato auto-generated auto-generated auto-generated方法stub suble suble.init(config); } @Override受保护的void Service(httpservletrequest请求,httpservletresponse响应)抛出ServletException,ioexception {wendment.setContentType(“ text/html”); request.setCharacterEncoding(“ UTF-8”); boolean ismultipart = servletfileupload.ismultipartcontent(请求);字符串basepath = getservletContext()。getRealPath(“/upload”); File daseRectory = new File(basepath);字符串文件名=“”;长启动= 0; if(!spedieRectory.isdirectory())laseectory.mkdirs();如果(ismultipart){尝试{fileItemFactory Factory = new DiskFileItemFactory(); ServletFileUpload上传=新的ServletFileUpload(工厂); @suppresswarnings(“ UNACKECT”)list <FileItem> fileItems = upload.parserequest(request); for(fileItem i:fileItems){if(i.isformfield()){字符串name = i.getFieldName();字符串值= i.getString(); if(name.equals(“ start”))start = long.parselong(i.getString()); }} for(fileItem item:fileItems){if(item.isformfield())继续; filename = item.getFieldName(); if(mkdir(basepath)){file fileonserver = createfile(basepath,filename); if(fileonServer.length()== 0){fileOutputStream fos = new fileOutputStream(fileonServer,true); ioutils.copy(item.getInputStream(),fos); } if(start> 0){fileOutputStream fos = new fileOutputStream(fileonServer,true); ioutils.copy(item.getInputStream(),fos); } printWriter pw = response.getWriter(); pw.write(“ {/” length/“”:/“”+fileonserver.length()+“/“}”); pw.flush(); }}}} catch(异常E){}}} private file createfile(字符串路径,字符串名称)抛出ioexception {file tmp = new file(path,name);如果(!tmp.exists()){tmp.createnewfile(); }返回TMP; } private boolean mkdir(string path){boolean result = true;文件tmp =新文件(path);如果(!tmp.isdirectory()){结果= tmp.mkdirs(); }返回结果; }}}2,java::
var ajaxupload = function(e){ / ** * e url方法数据成功错误 * / var xmlhttprequest; if(window.xmlhttprequest){xmlhttprequest = new xmlhttprequest(); if(xmlhttprequest.overridemeType){xmlhttprequest.overridememetype(“ text/xml”); }}} else if(window.activexobject){var activename = [“ msxml2.xmlhttp”,“ microsoft.xmlhttp”]; for(var i = 0; i <activename.length; i ++){try {xmlhttprequest = new ActiveXobject(activename [i]);休息; } catch(e){return; }}} if(xmlhttprequest == undefined || xmlhttprequest == null){arter(“ xmlhttprequest 对象创建失败!!”);返回; } else {this.xmlhttp = xmlhttprequest; } var file = document.getElementById(e.id); if(this.xmlhttp!= undefined && this.xmlhttp!= null){e.method = e.method.touppercase(); if(e.Method!=“ get” && e.method!=“ post”){alert(“ http的请求方法必须为get或post !!!”);返回; } if(e.url == null || e.url == undefined){e.Alert(“ http 的请求地址必须设置!”);返回; }} this.xmlhttp.onreadyStateChange = function(){if(this.dreadystate == 4){if(this.status == 200){var ponsepteText = this.responseText; var Responsexml = this.reponsexml; if(e.success == undectined || e.success == null){alert(“没有设置处理数据正确返回的方法”);警报(“返回的数据:” + ponsponseText); } else {e.Success(ponsponseText,responsexml); }} else {if(e.Error == undefined || e.error == null){alert(“ 没有设置处理数据返回失败的处理方法!”);警报(“ http的响应码:“ + this.status +”,响应码的文本信息:“ + this.statustext); } else {e.Error(this.status,this.statustext); }}}} // var formhtm =“ <form id ='output'enctype ='multipart/form-data'> </form>”; var filename = getFilename(e.id); this.xmlhttp.open(e.method,e.url,true); var data = new FormData(document.getElementById(“ output”)); data.append(“名称”,文件名); data.append(“ start”,e.data.start); data.append(fileName,document.getElementById(e.id).files [0] .slice(e.data.start,getFilesize(e.id))); this.xmlhttp.send(data);}函数getfileName(id){var path = document.getElementById(id).value var pos1 = path.lastIndexof('/'/'); var pos2 = path.lastIndexof('//'); var pos = math.max(pos1,pos2); return path.substring(pos + 1);}函数getfilesize(id){return document.getElementById(id).files [0] .size;}3 html::
<!doctype html> <html> <head> <meta http-equiv =“ content-type” content =“ text/html; charset = utf-8”> <script type =“ text/javascript” text/javascript“ src =“ src =” src =“ test.js”> value =“上传”/> <span>请选择要上传的文件(小于1G)</span> <input type =“ button” value =“上传” onclick =“ test();”/> <form id =“输出” enctype =“ multipart/form-data/form> </form> </form> </form> </form> </form> </form> </form <script> <script>函数test() “/pcc/reston/ajaxupload”,方法:“ post”,数据:{start:0},成功:函数(e){var l = json.parse(e).length; ajaxupload; ajaxupload; },错误:函数(e){console.log(e);};}; } </script> </body> </html>以上就是本文的全部内容,Java程序设计有所帮助。