文件上传案例(java)
/*** @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)相关推荐
- 文件上传案例优化(文件命名循环接收多线程提高效率)
package com.learn.demo03.FileUpload;import java.io.FileInputStream; import java.io.IOException; impo ...
- 文件上传案例的服务器端
package com.learn.demo02.FileUpload;import java.io.File; import java.io.FileOutputStream; import jav ...
- 文件上传案例的客户端
package com.learn.demo02.FileUpload;import java.io.FileInputStream; import java.io.IOException; impo ...
- js文件上传,java后台接收
js文件上传,java后台接收 js文件上传,java后台如何接收 前端写法如下 <!DOCTYPE html> <html><head><meta char ...
- 【java笔记】网络编程:文件上传案例
原理:文件的复制 客户端读取本地的文件,把文件上传到服务器,服务器把上传的文件保存到服务器的硬盘上 步骤: 1.客户端使用本地的字节输入流,读取要上传的文件 2.客户端使用网路字节输出流,把读取的文件 ...
- java实现上传_文件上传(java)
最近看了一本书上的代码,代码的主要功能是实现文件的上传.但是,当我运行代码的时候竟然报错了.(我用的IDEA).有错就解决吧.以下是我遇到的几个错误. 废话不多说先附上源代码. UploadServl ...
- ajax框架怎么学,Ajax框架之DWR学习(文件上传案例)
DWR文件上传起来 还是挺方便的,直接就是咔咔的上传 ,实现了静态的文件上传,老爽了,需要依赖commons-fileupload 这个上传包. 目录结构 环境搭建 pom.xml commons-f ...
- Springboot2中文件上传报java.io.FileNotFoundException: C:\Users\WIzarder\AppData\Local\Temp\tomcat.8080.589
Springboot2文件上传中用MultipartFile接受文件,上传报错java.io.FileNotFoundException: C:\Users\WIzarder\AppData\Loca ...
- 又拍云upyun 文件上传(Java)
ps:时隔两年了没有更新博客了,今天出一篇关于又拍云Java客户端封装的工具类:都自己写的,里面的部分缺失的部分可以根据代码上下文猜出来的,就不发了. pom.xml: <dependency ...
- spring-boot 文件上传异常java.lang.RuntimeException: java.nio.file.NoSuchFileException: /tmp/undertow.51230
问题描述 今天服务器上面的spring-boot应用突然出现文件上传异常, Failed to parse multipart servlet request; nested exception i ...
最新文章
- 《Netty In Action》第二章:第一个Netty程序
- 查询进程打开的文件(转)
- 链表题目----5 相交链表 和 环形链表 和 返回链表开始入环的第一个节点
- 五分钟用Docker快速搭建Go开发环境
- javascript判断日期奇偶_js中判断奇数或偶数
- LODOP在页面不同位置输出页眉页脚
- 逆置单链表c语言程序,逆置单链表C语言
- 华为 EC169 3G上网卡在MacPro中的使用
- jQuery ajax 文件上传携带附加参数
- 远程连接端口修改,使用注册表修改
- SQL2008 SQLExpress数据库存满处理
- 大学计算机实践教程咖啡文化,北京大学图书馆学习共享空间.docx
- Python 文字排版工具
- js 打印去掉页眉页脚页码_javascript 打印时去掉页眉页脚
- 在那个春暖花开的季节 今天微微的小雨 伴着轻轻的晚风我们一起来编写 员工考勤信息管理...
- 中国软件企业排名(不是绝对的)
- mysql if 多个,mysql多个if语句
- Vision Transformer综述翻译
- 解决Vue history模式下使用嵌套路由打包部署后刷新页面为空白页
- 前缀树(Trie树)
热门文章
- Java物流运输管理系统源码 快递物流管理系统源码
- Dev-C++中, “\“反斜杠符号显示成人民币符号、中文斜躺 问题
- 【侯捷】C++面向对象高级编程(下)
- 云朵怎么画好看?超简单的天空上色教程
- deepin自己更新火狐esr
- 3dmax和python做3d动画_3D动画和影视建模,用什么软件或者多个什么软件结合做比较好?...
- Babylon.js 第28章 多面体
- 黑苹果系统完全移植新硬盘
- 实现isodd() 参数为整数,如果整数为基数,返回True 否则返回False
- java 查询微信支付订单