1.首先本小姐很久没写代码,很多东西其实都忘的差不多,特别是Html的一些标签和js更是忘得一塌糊涂,由于这次我们公司要做个上传下载的web服务器,改服务器是跟android客户端提供数据的,也就是说这个ftpweb下载服务器主要是android端提供文件下载等服务的,但是我用jsp页面做了个demo,原理差不多,只是跟android端传递的不是下载文件数据,而是包含下载路径的下载文件信息,以下是我写的小demo;
2.下面是Jsp页面代码:
<script type="text/javascript">
function xiaozhukuaipaoOnclick(){
var filename = "小猪快跑13.01.apk";
document.getElementById("form").action="xiazai?fileName="+encodeURI(encodeURI(filename));
document.getElementById("form").submit();
}
function xiaoyazhiOnclick(){
var filename = "小鸭子.APK" ;
document.getElementById("form").action="xiazai?fileName="+encodeURI(encodeURI(filename));
document.getElementById("form").submit();
// document.forms[0].action + =("&fileName="+filename) ;
// document.forms[0].submit();
}
function GoLiveOnclick(){
var filename ="GoLive TV.11.02.apk";
// alert(document.forms[0].action);
// document.forms[0].action+("&fileName="+filename) ;
//document.forms[0].action="xiazai?fileName="+filename" ;
// document.forms[0].submit();
document.getElementById("form").action="xiazai?fileName="+encodeURI(encodeURI(filename));
document.getElementById("form").submit();
}
</script>
<form id="form" enctype="multipart/form-data" method="post">
<li><span>小猪快跑游戏.APK </span>
<input type="button" value="下载" name="xiaozhukuaipao" id="xiaozhukuaipao" onclick="xiaozhukuaipaoOnclick()"> </li>
<li><span>小鸭子.APK </span>
<input type="button" value="下载" name="xiaoyazhi" id="xiaoyazhi" onclick="xiaoyazhiOnclick()"> </li>
<li><span> GoLive TV.11.02.apk </span>
<input type="button" value="下载" name="GoLive" id="GoLive" onclick="GoLiveOnclick()"> </li>
</form>
3.下面是我的servlet类:
package download.control;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class DownLoadControlServlet extends HttpServlet {
private static final long serialVersionUID = 1l;
private DownLoadControlServlet downLoadControlServlet ;
public void init() throws ServletException{
System.out.println("DownLoadControlServlet init()��ʼ��..");
}
public void init(ServletConfig config) throws ServletException{
super.init(config);
System.out.println("DownLoadControlServlet Config()");
}
public void doGet(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException{
System.out.println(req+"---"+resp);
this.doPost(req, resp) ;
System.out.println("DownLoadControlServlet doGet()");
}
public void doPost(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException{
System.out.println(req+"---"+resp);
HttpServletResponse response = resp;
HttpServletRequest request = req;
System.out.println("DownLoadControlServlet doGet()");
// String fileName = req.getParameter("fileName");
// PrintWriter printWriter = new PrintWriter() ;
/*if(fileName == null || fileName == ""){
System.out.print("用户请求下载的文件不存在");
}
*/
//将文件流写入浏览器
OutputStream outputStream = resp.getOutputStream();
ServletContext servletContext=req.getSession().getServletContext();
String fileName =req.getParameter("fileName") ;
File file = new File(servletContext.getRealPath("/WEB-INF/downLoad/"), fileName);
// File file =new File("D:/download/res/" , "fileName");
System.out.println(file.getPath()+"-------");
resp.setHeader("Content-disposition","attachment; filename="+fileName);
resp.setContentType("application/vnd.ms-excel;charset=GBK");
resp.setBufferSize(1024);
resp.setHeader("Cache-Control","no-cache"); //HTTP 1.1
resp.setHeader("Pragma","no-cache"); //HTTP 1.0
resp.setDateHeader ("Expires", 0); //prevents caching at the proxy server
if (file.exists()) {
FileInputStream fileInputStream = new FileInputStream(file);
byte[] b = new byte[1024];
int length;
while ((length = fileInputStream.read(b)) != -1) {
outputStream.write(b, 0, length);
outputStream.flush();
}
}
else {
System.out.println("下载的文件不存在");
}
}
public void destroy(){
System.out.println("Servlet destroy()....");
}
}
4.从代码中可以看出我的下载文件是放在webInfo下面的downLoad文件下面,
5.在web.xml配置servlet应该都会,但是还是写上吧
<servlet>
<servlet-name>DownLoadControlServlet</servlet-name>
<servlet-class>download.control.DownLoadControlServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DownLoadControlServlet</servlet-name>
<url-pattern>/xiazai</url-pattern>
</servlet-mapping>
分享到:
相关推荐
基于ThinkPHP5图书管理系统demo源码 一、源码描述 程序后台技术框架:ThinkPHP5(一个MVC框架),后台界面采用EasyUI框架,前台界面采用Bootstrap框架,用户浏览器和服务器全程几乎采用jquery异步加载技术! 二、...
### C# WinForm中的文件上传与下载实现 在C# WinForm应用程序中,实现文件的上传和下载功能是非常常见的需求之一。本文将详细介绍如何利用C#语言和WinForm框架来实现这一功能,并深入探讨其中涉及的关键技术和代码...
在"xfire webservice 上传下载源码"这个主题中,我们将深入探讨如何使用XFire来实现文件的上传和下载功能,以及相关的核心概念和技术细节。 **一、XFire简介** XFire是Apache CXF的前身,其设计目标是简化Web服务的...
在本示例中,我们将深入探讨如何利用WCF实现文件上传功能。 文件上传是一种常见的需求,特别是在Web应用程序中。传统的ASP.NET或其他Web框架可能通过表单提交和HTTP POST来处理文件上传,而WCF提供了另一种更可控、...
[上传下载]带进度条大文件上传源码(单文件多文件都可以传)_uploaddemo.rar [上传下载]手机电影下载系统源码_56wam.rar [上传下载]桃源网络硬盘.Net 5.4_webdisk.rar [上传下载]桃源网络硬盘.Net v4.6_webdisk.rar ...
AspUpload组件是一款广泛应用于ASP(Active Server Pages)开发中的文件上传工具,它极大地简化了在Web应用中处理用户上传文件的过程。这个组件允许开发者在服务器端接收并处理多个文件的上传请求,提供了丰富的功能...
本教程将介绍如何使用SpringBoot集成FastDFS客户端,实现文件的上传与下载功能。 首先,我们需要在项目中添加FastDFS的Java客户端依赖。FastDFS官方提供了一个名为`fastdfs-client-java`的客户端库,可以从GitHub或...
在本文中,我们将深入探讨如何使用PHP和AJAX技术实现一个带有进度条的图片上传功能。这个功能允许用户在上传大文件时实时看到文件传输的进度,提供了更好的用户...提供的源码下载可以帮助你更好地理解并实现这一功能。
在.NET中,可使用FtpFileSystem对象来封装对本地文件系统的访问,实现如GetFiles、UploadFile、DownloadFile等方法。 4. FTP命令处理:FTP协议定义了一系列命令,如USER、PASS、CWD、LIST、STOR、RETR等。...
源码中可能包含了如上传文件、下载文件、修改工作表内容、合并单元格、添加图表等操作的示例。 **API Demo** 部分是预编写好的示例代码,用于展示Spire.Cloud API的基本用法。开发者可以通过运行这些示例,快速上手...
本文将深入探讨“flash上传文件,flex上传,无刷新上传,php上传”这一主题,并结合提供的源码文件,分析实现这些功能的关键技术和步骤。 首先,让我们了解一下“Flash上传文件”。在早期的Web开发中,Flash由于其强大...
源码有详细使用文档,可以下载查看。 用户名是:51aspx 密码是 51aspx 管理员用户名是:admin 密码是 pub 默认添加的用户的密码均是pub 特此声明,网站版权归开发公司所有,此源码仅供学习交流之用,如有违者...
下载并安装后,你可以通过这个工具创建一个新的项目,将“cropper-demo”文件夹导入作为项目源码。 2. **cropper组件**:在小程序中,`cropper`组件是用于图片裁剪的关键。它提供了一种在界面上选择并裁剪图片的...
后台管理员登录采用了验证码,查询的结果记录都可以导出到Excel,对其中的图片上传和文件上传专门写了2个方法uploadPhoto和uploadFile放到了基类中,所有控制器类继承基类,实现了代码的精简优化! 开发软件: ...
在这个“mes上传基于C#上传web service示例源码”中,我们将深入探讨如何使用C#与Web服务进行交互,实现文件上传功能。 首先,Web服务通常是基于SOAP(Simple Object Access Protocol)或REST(Representational ...
这个Demo中可能包含了FastDFS的Java SDK,用于文件上传和下载操作。 1. **引入依赖**:将FastDFS的Java客户端库加入到项目类路径,如果是Maven项目,可以在pom.xml中添加依赖。 2. **初始化连接**:创建FastDFS的...
关于“diyUpload”这个文件,可能包含了一个自定义上传组件的实现,比如使用Vue或React等前端框架编写。在分析这个组件时,我们需要注意其如何处理文件选择、状态管理、异步上传和取消操作等方面。 总之,实现多...
`Demo`可能是一个示例项目或目录,其中可能有使用FTPclient库进行FTP上传的代码示例。而`FTPclient`可能是自定义的FTP客户端类库,包含实现FTP上传功能的类和方法。 综上所述,VB.NET中的FTP上传涉及到网络编程、...
除了源码的修改以上参数,在微信公众平台小程序后台,还要在服务器域名里添加合法域名,request合法域名、socket合法域名、uploadFile合法域名、downloadFile合法域名都配置好就可以了。
例如,使用`uploadFile`方法上传文件,`downloadFile`方法下载文件,`transform`方法对文件进行处理,如转换格式或调整大小。 此外,为了提升用户体验,"clouddoc"可能还采用了现代前端框架,如React或Vue,来实现...