JavaWeb实现前端从服务器下载图片和前端上传文件到服务器
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JavaWeb实现前端从服务器下载图片和前端上传文件到服务器,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4566字,纯文字阅读大概需要7分钟。
内容图文
![JavaWeb实现前端从服务器下载图片和前端上传文件到服务器](/upload/InfoBanner/zyjiaocheng/613/65d1ad21952148c5ab190f09bcdcbdc5.jpg)
环境:Eclipse,Apache tomcat
Tomcat与Eclipse集成:
https://blog.csdn.net/qq_41635282/article/details/112252764
文件说明
index.html:前端页面
ShowImg.java:从服务器上返回一张图片显示在页面上。
Upload.java:处理上传的文件存储到服务器上指定的位置。
Download.java:从服务器上下载文件到本地。
创建一个javaweb项目
我的项目名叫:ShowDownloadWebServers
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
div {
border: 2px solid black;
}
</style>
</head>
<body>
<div>
<p>点击按钮,从服务器上返回一张图片</p>
<form action="show">
<p>
<input type="submit" value="查看图片">
</p>
</form>
</div>
<br>
<div>
<p>上传:将文件传到服务器上</p>
<form action="upload" method="post" enctype="multipart/form-data">
<p>
<input type="file" name="file">
</p>
<p>
<input type="submit" value="上传到服务器">
</p>
</form>
</div>
<br>
<div>
<p>点击从服务器上下载个图片</p>
<p>
<img alt="" width="200" height="200" name="img1"
src="http://localhost:8080/ShowDownloadWebServers/img/2.jpg">
</p>
<p>
<a href="download?name=2.jpg">下载图片</a>
</p>
</div>
</body>
</html>
注意事项:
ShowImg.java
package com.bingjiu.back;
import java.io.IOException;
import java.io.InputStream;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/*
* 显示图片img/1.jpg
*/
@WebServlet("/show")
public class ShowImg extends HttpServlet{
private static final long serialVersionUID = 1L;
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//设置响应头Content-Type为图片类型
resp.setHeader("Content-Type","image/jpg" );
//Servlet自带的输出流
ServletOutputStream os=resp.getOutputStream();
//将图片输入到内存
InputStream is=req.getServletContext().getResourceAsStream("img/1.jpg");
byte[] data=new byte[1024];
int len=0;
//输出到页面打印
while((len=is.read(data))!=-1) {
os.write(data,0,len);
}
//关闭流
os.close();
is.close();
}
}
注意事项:
Upload.java
package com.bingjiu.back;
import java.io.File;
import java.io.IOException;
import java.util.UUID;
import javax.servlet.ServletException;
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;
/*
* 上传到服务器
*/
@WebServlet("/upload")
@MultipartConfig
public class Upload extends HttpServlet{
private static final long serialVersionUID = 1L;
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//解决网页乱码
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
//获取part对象
Part part = req.getPart("file");
//通过请求头content-disposition获取请求头信息
String header = part.getHeader("content-disposition");
System.out.println(header);
//从请求头信息种截取文件名,header.lastIndexOf("=")获取‘=’最后出现的位置
String filename = header.substring(header.lastIndexOf("=")+2, header.length()-1);
System.out.println(filename);
//确定上传路径
String path="C:/Users/BetelNutsAndWine/Desktop/WenJian";
//创建指向路径的File对象
File file = new File(path);
//file.exists()文件(文件夹或文件路径正确)存在返回true,不存在返回false
if(!file.exists()) {
//创建文件夹,把路径中不存在的路径一下创建
file.mkdirs();
}
//文件上传
part.write(path+"/"+UUID.randomUUID()+filename);
}
}
注意事项:
Download.java
package com.bingjiu.back;
import java.io.IOException;
import java.io.InputStream;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/download")
public class Download extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 获取下载页面发送的下载文件名
String filename = req.getParameter("name");
// 设置消息头
resp.setHeader("content-disposition", "attachment;filename=" + filename);
// 获取输入流
InputStream is = req.getServletContext().getResourceAsStream("img/" + filename);
// 输出流
ServletOutputStream os = resp.getOutputStream();
// 读写过程
byte[] by = new byte[1024];
int len = 0;
while ((len = is.read(by)) != -1) {
os.write(by, 0, len);
}
os.close();
is.close();
}
}
内容总结
以上是互联网集市为您收集整理的JavaWeb实现前端从服务器下载图片和前端上传文件到服务器全部内容,希望文章能够帮你解决JavaWeb实现前端从服务器下载图片和前端上传文件到服务器所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。