<%@page language="java" pageEncoding="UTF-8"%>
<%@page import="java.util.ArrayList"%>
<%@page import="org.apache.commons.fileupload.DiskFileUpload"%>
<%@page import="java.util.List"%>
<%@page import="java.util.Iterator"%>
<%@page import="org.apache.commons.fileupload.FileItem"%>
<%@page import="java.io.InputStream"%>
<%@page import="java.io.FileOutputStream"%>
<%@page import="java.util.Calendar"%>
<%@page import="java.util.Map"%>
<%@page import="java.util.Hashtable"%>
<%@page import="java.io.File"%>
<%@page import="java.io.OutputStream"%>
<%@page import="java.io.BufferedInputStream"%>
<%@page import="java.io.FileInputStream"%>
<%!
public static String getFileName(){
Calendar cal = Calendar.getInstance();
return cal.getTimeInMillis()+"";
}
%>
<%
String dir = "upload";
Map<String,String> filemaps = (Map<String,String>)request.getSession().getServletContext().getAttribute("filemaps");
if(filemaps==null){
filemaps = new Hashtable<String,String>();
request.getSession().getServletContext().setAttribute("filemaps",filemaps);
}
//try{
if("up".equals(request.getParameter("action"))){
List<String> errfiles = new ArrayList<String>();
DiskFileUpload fileupload = new DiskFileUpload();
fileupload.setHeaderEncoding("GBK");
fileupload.setSizeMax(1500 * 1024);
fileupload.setSizeThreshold(1500 * 1024);
List fileItems = fileupload.parseRequest(request);
Iterator iter = fileItems.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
if (!item.isFormField()) {
String name =item.getName();
String savename = getFileName();
int indx = name.lastIndexOf(".");
String suffix = name.substring(indx);//从n开始到结束,即取出后缀名
filemaps.put(savename+suffix,new String(name.getBytes("gbk"),"utf-8"));
InputStream istream = item.getInputStream();
String path = request.getSession().getServletContext().getRealPath(dir);
try{
File f = new File(path+"\\"+savename+suffix);
f.createNewFile();
FileOutputStream fout = new FileOutputStream(path+savename+suffix);
byte buffer[] = new byte[8192];
int count = 0;
while ((count = istream.read(buffer)) > 0) {
fout.write(buffer, 0, count);
}
fout.close();
item.delete();
System.out.println("***************");
}catch(Exception e){
e.printStackTrace();
errfiles.add(filemaps.get(savename));
filemaps.remove(savename);
}
request.setAttribute("errfiles",errfiles);
}
}
}
//}catch(Exception e){
// e.printStackTrace();
//}
if("delete".equals(request.getParameter("action"))){
String filename = request.getParameter("filename");
String path = request.getSession().getServletContext().getRealPath(dir);
File f = new File(path+"\\"+filename);
f.delete();
System.out.println("_________:"+filemaps.size());
filemaps.remove(filename);
System.out.println(filemaps);
request.getSession().getServletContext().setAttribute("filemaps",filemaps);
}
if("load".equals(request.getParameter("action"))){
OutputStream os = null;
InputStream istream = null;
BufferedInputStream bis = null;
String filename = request.getParameter("filename");
try {
os = response.getOutputStream();
response.reset();
response.setHeader("Content-disposition", "attachment; filename=" + filename);
response.setContentType("application/javascript");
String path = request.getSession().getServletContext().getRealPath(dir);
istream = new FileInputStream(path+filename);
bis = new BufferedInputStream(istream);
byte data[] = new byte[1024];
int size = 0;
size = bis.read(data);
while(size!=-1){
os.write(data);
size = bis.read(data);
}
}catch(Exception expt){
expt.printStackTrace();
}finally{
try {
if (bis != null) {
bis.close();
}
if (istream != null) {
istream.close();
}
if (os != null) {
os.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=GBK">
<script language="javascript" type="text/javascript" >
function deletefile(name){
window.location.href="upload.jsp?action=delete&filename="+name;
}
function downloadfile(name){
window.location.href="upload.jsp?action=load&filename="+name;
}
</script>
<style type="text/css">
body{
font-size:13px;
}
table{
font-size:13px;
}
</style>
</head>
<body>
<div>
<div>上传文件:</div>
<form method="post" enctype="multipart/form-data" action="upload.jsp?action=up">
<input type="file" name="file" />
<input type="submit" value="确认" />
</form>
</div>
<div>
<div>文件详情:</div>
<div>
<table>
<tbody>
<%
boolean flag = true;
Map<String,String> files = (Map<String,String>)request.getSession().getServletContext().getAttribute("filemaps");
if(files!=null&&files.size()!=0){
flag=false;
for(Map.Entry<String,String> m:files.entrySet()){
%>
<tr><td><span name="<%=m.getKey()%>"><%=m.getValue() %></span></td><td><a href="javascript:downloadfile('<%=m.getKey()%>');" >下载</a> <a href="javascript:deletefile('<%=m.getKey()%>');" >删除</a></td></tr>
<%
}
}
List<String> errfiles = (List<String>)request.getAttribute("errfiles");
if(errfiles!=null&&errfiles.size()!=0){
flag=false;
for(String m:errfiles){
%>
<tr><td><span><%=m%></span></td><td><span style="font:red;" >上传失败</span></td></tr>
<%
}
}
if(flag){
%>
<tr><td><span>还未上传任何文件!</span></td></tr>
<%
}
%>
</tbody>
</table>
</div>
</div>
</body>
</html>
分享到:
相关推荐
基于Python+Django简单实现文件上传下载功能源码 基于Python+Django简单实现文件上传下载功能源码 基于Python+Django简单实现文件上传下载功能源码 基于Python+Django简单实现文件上传下载功能源码 基于...
以上是使用Spring Boot和Thymeleaf实现文件上传下载的基本步骤。通过这种方式,你可以构建一个简单的文件管理系统,允许用户上传和下载文件。在实际应用中,你可能还需要处理更多细节,如错误处理、日志记录、权限...
总的来说,Spring Boot提供了一种简洁的方式来实现文件上传和下载功能,结合Thymeleaf和其他Spring组件,可以快速构建出功能完善的Web应用。通过合理的接口设计和实现,我们可以实现可扩展且易于维护的文件存储服务...
需求 1.能够对多个文件进行上传(可以选择上传文件个...提供多文件上传,上传成功后,提供刚上传的文件下载功能(其他的都可以在其上面进行扩充) 多文件 上传 下载 随意文件 java Struts2 单例 配置 动态读取 李顺利
下面是一个简单的文件上传和下载的代码示例: ```java @Controller public class FileUploadController { @PostMapping("/upload") public String handleFileUpload(@RequestParam("file") MultipartFile file) ...
总之,JavaWeb中的文件上传和下载涉及到多个环节,从客户端的表单提交到服务器端的处理和存储,再到客户端的下载,每个步骤都需要仔细设计和实现,确保系统的安全性和稳定性。提供的源代码可以作为一个基础模板,...
在这个"Servlet 文件上传下载例子"中,我们将探讨如何使用Servlet实现文件的上传和下载功能,这对于构建一个简单的图片文件服务器至关重要。 1. **文件上传** - **MultipartRequest**: 在Servlet中,处理文件上传...
`SmartUpload`库提供的API可以方便地解决这些问题,使得文件上传下载功能的实现更加高效和稳定。 总结,通过学习和掌握JSP与`SmartUpload`库的使用,开发者可以轻松构建起一套完善的文件上传下载系统,为用户提供...
通过以上步骤,你可以实现一个基于Struts2和Hibernate的文件上传与动态下载系统。这个系统能够处理用户上传的文件,将其保存到服务器,同时提供动态下载功能,允许用户根据需要下载文件。在实际开发中,还需要考虑...
9. **进度反馈与取消操作**: 对于用户体验,提供文件上传和下载的进度反馈以及取消操作的能力也是很重要的,这可以通过监听上传或下载的进度并更新UI来实现。 10. **文件存储策略**: 选择合适的文件存储策略,如...
在Java编程领域,文件上传和下载是Web应用中常见的功能,尤其在开发涉及用户交互的系统时,如文件管理系统、在线文档共享平台等。这里,我们将深入探讨如何使用Java实现文件的上传和下载。 首先,文件上传涉及到...
文件上传下载服务器是一种重要的网络服务,它为用户提供了一...用户可以通过它来搭建自己的文件上传下载服务器,实现类似学校教师收发作业的功能。在使用前,需要了解其基本操作和配置方法,以确保能正确地部署和使用。
在本项目中,"PHP 简单实现文件上传、保存、下载的功能(云盘)",我们主要关注的是如何利用PHP构建一个基本的云存储服务,让用户能够在自己的账户空间内进行文件的操作。以下是对涉及的技术点的详细解释: 1. **PHP*...
一个简单地文件管理系统,实现了文件的上传、下载、移动等功能,支持大部分类型文件的预览,支持视频浏览,音乐播放等。。。一个个人文件管理系统的源码脚手架,r-pan基于此脚手架搭建,版本更新内容(更换了前端...
在Java编程环境中,实现Linux与Windows之间的文件上传和下载是一项常见的任务,特别是在分布式系统和跨平台应用中。本文将深入探讨如何使用Java技术实现在Linux和Windows之间进行文件的互传,以及创建一个HTML界面来...
本文实例讲述了golang实现的文件上传与文件下载功能。分享给大家供大家参考,具体如下: upload.go 复制代码 代码如下:package common import ( “io/ioutil” “os” “path” “github.com/gin-gonic/gin...
要实现FTP文件上传,我们首先创建一个`FtpWebRequest`对象,设置其方法为`WebMethod.UploadFile`,然后提供FTP服务器的URL、用户名和密码。接着,打开一个流写入器,将本地文件内容写入请求的主体,最后发送请求并...
总的来说,【局域网文件上传下载工具】简化了局域网内的文件交互过程,通过Web技术实现跨平台的兼容性,让文件共享变得快速、简单且高效。无论是工作中的项目文件传递,还是家庭成员间的照片分享,都是一个值得信赖...
在PHP中,文件上传和下载是两个非常重要的功能,它们在Web开发中有着广泛的应用,例如用户上传头像、分享文件或下载资源等。本文将详细介绍如何使用PHP实现这两个功能。 首先,我们从文件上传开始。PHP提供了`$_...