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>
分享到:
相关推荐
后台管理员登录采用了验证码,查询的结果记录都可以导出到Excel,对其中的图片上传和文件上传专门写了2个方法uploadPhoto和uploadFile放到了基类中,所有控制器类继承基类,实现了代码的精简优化! 三、注意事项 ...
利用fileupload包进行文件的上传,可直接应用。项目里面已经含有了所需要的包
[上传下载]Ajax UpLoadFile 多个大文件上传控件 v1.15_ltajaxupfilecontrol.zip源码A[上传下载]Ajax UpLoadFile 多个大文件上传控件 v1.15_ltajaxupfilecontrol.zip源码A[上传下载]Ajax UpLoadFile 多个大文件上传...
jsp_Uploadfile_2 demo 2
UpLoadFile MVC完整Demo支持断点续传
例1:使用WebClient中的UploadFile方法上传文件。代码如下。使用此方法需要将上传的文件夹权限设置为 IIS来宾账户允许读写。 例2:使用WebClient的UpLoadData上传文件 例3:使用WebClient的Write方法上传。 例4:...
[上传下载]带进度条大文件上传源码(单文件多文件都可以传)_uploaddemo.rar [上传下载]手机电影下载系统源码_56wam.rar [上传下载]桃源网络硬盘.Net 5.4_webdisk.rar [上传下载]桃源网络硬盘.Net v4.6_webdisk.rar ...
js jquery无刷新上传插件及实现源码 两种uploadFile 和Uploadify
ASP.NET源码——[上传下载]Ajax UpLoadFile 多个大文件上传控件.zip
ASP,NET源码——[上传下载]Ajax UpLoadFile 多个大文件上传控件.zip
支持多文件上传,利用了Ajax异步请求方式实现无刷新上传。
1 使用curl实现cocs2d上传文件功能 2 因为独立于cocos2d自带的网络方式, 所以Cookie等需要特殊处理 2 coco2d 3.x 版本 class UploadFile : public cocos2d::Ref { public: UploadFile(); ~UploadFile(); public: ...
微信小游戏 小程序 上传/下载 文件的服务器代码示例 asp.net core 2.0 对应客户端接口 wx.uploadFile wx.downloadFile
控件UpdloadFile文件上传eg: string newfilename = file_uploadid.FileName; string size = file_uploadid.PostedFile.ContentLength.ToString(); string type = file_uploadid.PostedFile.ContentType; string ...
下载文件 读取桶列表 读取桶中的文件列表 删除桶 删除文件 Spring boot整合MinIO客户端实现文件管理 Spring boot整合MinIO客户端实现文件管理 Spring boot整合MinIO客户端实现文件管理 Spring boot整合MinIO客户端...
上传文件demo,android上传图片实例。
文件上传插件
本源码是我自己正在使用的下载站打包下来的。里面所有的软件数据都可以下载,完全无死链。内核是新云3.0不懂安装可以到新云的官方参考 <br>演示网站http://www.dd1898.cn<br><br>演示图片...
用于文件上传 参数 文件名 上传所用的 UpLoadFile 进程Dialog
大小图片的转换 大小图片的转换 大小图片的转换大小图片的转换