啥也不说了,直接上代码!
<input type="file" id="file" name="myfile" onclick="clearProgressInfo()"/> <span id="progressInfo" style="display:none;"> <progress id="progressBar" value="0" max="100"></progress> <span id="percentage"></span> </span><br/> <input type="button" onclick="UpladFile()" value="上传" />
js代码
function UpladFile() { var fileObj = document.getElementById("file").files[0]; // js 获取文件对象 var FileController = "/file/saveFile.do"; // 接收上传文件的后台地址 // FormData 对象 var form = new FormData(); form.append("author","hooyes"); // 可以增加表单数据 form.append("file",fileObj); // 文件对象 // XMLHttpRequest 对象 var xhr = new XMLHttpRequest(); xhr.open("post",FileController,true); xhr.onload = function() { // alert("上传完成!"); }; document.getElementById('progressInfo').style.display = ""; xhr.upload.addEventListener("progress",progressFunction,false); xhr.send(form); } function clearProgressInfo() { document.getElementById('progressInfo').style.display='none'; document.getElementById("progressBar").value = 0; document.getElementById("percentage").innerHTML = ""; } function progressFunction(evt) { var progressBar = document.getElementById("progressBar"); var percentageDiv = document.getElementById("percentage"); if (evt.lengthComputable) { progressBar.max = evt.total; progressBar.value = evt.loaded; percentageDiv.innerHTML = Math.round(evt.loaded / evt.total * 100) + "%"; } }
java后台处理:
import java.io.BufferedInputStream; import java.io.bufferedoutputstream; import java.io.FileOutputStream; import java.io.IOException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.util.Streams; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.multipart.multipartfile; import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.multipart.MultipartResolver; import org.springframework.web.multipart.commons.CommonsMultipartResolver; import org.springframework.web.servlet.mvc.multiaction.MultiActionController; import com.okcoin.util.Logs; @Controller @RequestMapping(value="/file/*.do") public class FileController extends MultiActionController{ public String saveFile(HttpServletRequest request,HttpServletResponse response) throws IOException { MultipartResolver resolver = new CommonsMultipartResolver(request.getSession().getServletContext()); MultipartHttpServletRequest multipartRequest = null; try { multipartRequest = resolver.resolveMultipart(request); } catch (Exception e) { Logs.geterrorLogger().error("AdminAccountController submitVerifyFile 非常的请求"); } //接收文件 multipartfile documentFile = multipartRequest.getFile("file"); //获取文件名 String documentFileName=documentFile.getoriginalFilename(); System.out.println("FileName:" + documentFileName); BufferedInputStream in = new BufferedInputStream(documentFile.getInputStream()); bufferedoutputstream out = new bufferedoutputstream(new FileOutputStream("D:\\Users\\" + documentFileName)); Streams.copy(in,out,true); System.out.println("copy finished."); return ""; } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。