/*** @Author: dgk1024* @Date: 2020/7/21-16:39* @Description:上传文件示例*/
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;@MultipartConfig/**@MultipartConfig标注才能使用getPart()相关API,否则会返回null。*/
@WebServlet("/aceppimg_Servlet")
public class aceppimg_Servlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//设置编码,否则上传文件中文名会乱码request.setCharacterEncoding("utf-8");/*** upload.jsp* formData.set("file", file.files[0]);*/Part part = request.getPart("file");String head = part.getHeader("Content-Disposition");String filename = head.split("filename=\"")[1].replace("\"","");System.out.println(head);//获取文件名System.out.println(filename);SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");String strCurrentTime = df.format(new Date());//防止文件重名filename = strCurrentTime+filename;BufferedInputStream in = new BufferedInputStream(part.getInputStream());BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("D:\\流练习文件夹\\123123123\\"+filename));byte[] b = new byte[1024];int length = -1;while((length = in.read(b))!=-1) {out.write(b, 0, length);}in.close();out.close();}
}
```网页端jsp
<%--Created by IntelliJ IDEA.User: 李轩Date: 2020/7/21Time: 16:39To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! --><title>Bootstrap 101 Template</title><!-- Bootstrap --><link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet"><!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 --><!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 --><!--[if lt IE 9]><script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script><script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script><![endif]--><title>Title</title><style>.progress {display: none;}</style>
</head>
<body>
<div class="progress"><div class="progress-bar" role="progressbar" aria-valuenow="2" aria-valuemin="0" aria-valuemax="100"style="min-width: 2em; width: 0%;">0%</div>
</div>
<input type="file" id="file">
<input type="button" value="上传文件" id="btn">
</body>
<script>var file = document.getElementById("file");var btn = document.getElementById("btn");btn.onclick = () => {//展示进度条document.getElementsByClassName("progress")[0].style.display = "block";console.dir(file.files[0]);let formData = new FormData();formData.set("file", file.files[0]);let xhr = new XMLHttpRequest();//初始化HTTP 请求参数(未发送)xhr.open("POST", "${pageContext.request.contextPath}/aceppimg_Servlet");//上传状态xhr.upload.onprogress = (evt) => {//进度条document.getElementsByClassName("progress-bar")[0].innerHTML = ((evt.loaded / evt.total * 100).toFixed(2) + "%");document.getElementsByClassName("progress-bar")[0].width = ((evt.loaded / evt.total * 100).toFixed(2));};//发送formDataxhr.send(formData);console.log(formData);//当状态发生改变时执行xhr.onreadystatechange = () => {if (xhr.readyState === 4 && xhr.status === 200) {console.log(xhr.responseText);//隐藏进度条document.getElementsByClassName("progress")[0].style.display = "none";}}};
</script>
</html>

文件上传案例(java)相关推荐

  1. 文件上传案例优化(文件命名循环接收多线程提高效率)

    package com.learn.demo03.FileUpload;import java.io.FileInputStream; import java.io.IOException; impo ...

  2. 文件上传案例的服务器端

    package com.learn.demo02.FileUpload;import java.io.File; import java.io.FileOutputStream; import jav ...

  3. 文件上传案例的客户端

    package com.learn.demo02.FileUpload;import java.io.FileInputStream; import java.io.IOException; impo ...

  4. js文件上传,java后台接收

    js文件上传,java后台接收 js文件上传,java后台如何接收 前端写法如下 <!DOCTYPE html> <html><head><meta char ...

  5. 【java笔记】网络编程:文件上传案例

    原理:文件的复制 客户端读取本地的文件,把文件上传到服务器,服务器把上传的文件保存到服务器的硬盘上 步骤: 1.客户端使用本地的字节输入流,读取要上传的文件 2.客户端使用网路字节输出流,把读取的文件 ...

  6. java实现上传_文件上传(java)

    最近看了一本书上的代码,代码的主要功能是实现文件的上传.但是,当我运行代码的时候竟然报错了.(我用的IDEA).有错就解决吧.以下是我遇到的几个错误. 废话不多说先附上源代码. UploadServl ...

  7. ajax框架怎么学,Ajax框架之DWR学习(文件上传案例)

    DWR文件上传起来 还是挺方便的,直接就是咔咔的上传 ,实现了静态的文件上传,老爽了,需要依赖commons-fileupload 这个上传包. 目录结构 环境搭建 pom.xml commons-f ...

  8. Springboot2中文件上传报java.io.FileNotFoundException: C:\Users\WIzarder\AppData\Local\Temp\tomcat.8080.589

    Springboot2文件上传中用MultipartFile接受文件,上传报错java.io.FileNotFoundException: C:\Users\WIzarder\AppData\Loca ...

  9. 又拍云upyun 文件上传(Java)

    ps:时隔两年了没有更新博客了,今天出一篇关于又拍云Java客户端封装的工具类:都自己写的,里面的部分缺失的部分可以根据代码上下文猜出来的,就不发了. pom.xml:  <dependency ...

  10. spring-boot 文件上传异常java.lang.RuntimeException: java.nio.file.NoSuchFileException: /tmp/undertow.51230

    问题描述 今天服务器上面的spring-boot应用突然出现文件上传异常, Failed to parse multipart servlet request; nested exception i ...

最新文章

  1. 《Netty In Action》第二章:第一个Netty程序
  2. 查询进程打开的文件(转)
  3. 链表题目----5 相交链表 和 环形链表 和 返回链表开始入环的第一个节点
  4. 五分钟用Docker快速搭建Go开发环境
  5. javascript判断日期奇偶_js中判断奇数或偶数
  6. LODOP在页面不同位置输出页眉页脚
  7. 逆置单链表c语言程序,逆置单链表C语言
  8. 华为 EC169 3G上网卡在MacPro中的使用
  9. jQuery ajax 文件上传携带附加参数
  10. 远程连接端口修改,使用注册表修改
  11. SQL2008 SQLExpress数据库存满处理
  12. 大学计算机实践教程咖啡文化,北京大学图书馆学习共享空间.docx
  13. Python 文字排版工具
  14. js 打印去掉页眉页脚页码_javascript 打印时去掉页眉页脚
  15. 在那个春暖花开的季节 今天微微的小雨 伴着轻轻的晚风我们一起来编写 员工考勤信息管理...
  16. 中国软件企业排名(不是绝对的)
  17. mysql if 多个,mysql多个if语句
  18. Vision Transformer综述翻译
  19. 解决Vue history模式下使用嵌套路由打包部署后刷新页面为空白页
  20. 前缀树(Trie树)

热门文章

  1. Java物流运输管理系统源码 快递物流管理系统源码
  2. Dev-C++中, “\“反斜杠符号显示成人民币符号、中文斜躺 问题
  3. 【侯捷】C++面向对象高级编程(下)
  4. 云朵怎么画好看?超简单的天空上色教程
  5. deepin自己更新火狐esr
  6. 3dmax和python做3d动画_3D动画和影视建模,用什么软件或者多个什么软件结合做比较好?...
  7. Babylon.js 第28章 多面体
  8. 黑苹果系统完全移植新硬盘
  9. 实现isodd() 参数为整数,如果整数为基数,返回True 否则返回False
  10. java 查询微信支付订单