下载地址:
1) commons-fileupload-122-binzip: 点击打开链接
2) commons-io-23-binzip: 点击打开链接
接着把这两个jar包放到 lib文件夹下:
二:文件上传的表单提交方式必须是POST方式,
编码类型:enctype="multipart/form-data",默认是 application/x- >使用jsp smartupload
示例:部分文件代码 具体实现 找些教材
UploadServletjava
import javaioIOException;
import javaioPrintWriter;
import javaxservletServletConfig;
import javaxservletServletException;
import javaxservlet>给你个实例:
<html>
<head>
<script language=javascript>
function addRow(){
var f = documentforms['formTest'];
var input = documentcreateElement('input');
inputsetAttribute("type","file");
inputsetAttribute("size","30");
inputsetAttribute("name","test");
fappendChild(input);
var br = documentcreateElement('br');
fappendChild(br);
}
</script>
</head>
</body>
<form name=formTest action="FileUploadServlet" method="post"
enctype="multipart/form-data">
<input name="up" type="submit" value="上传" />
<button type="button" onclick='addRow();'>加入一行</button><br/>
<input type="file" size="30" name="test" />
<br />
</form>
</body>
</html>无组件断点续传gif
1 组件简介
webuploader:是一个以HTML5为主, Flash为辅的文件上传组件,采用大文件分片/并发上传的方式,极大地提高了文件上传的效率,同时兼容多种浏览器版本;
2 项目背景简介
本篇文章的背景,是在上一篇文章(《无组件实现大文件分片上传,断点续传》)的项目背景下进行的一次尝试,所以本篇文章还是基于上一篇文章的背景,但是不会介绍视频基本信息(视频标题、简介、播出时间等)的 *** 作,主要介绍文件的上传。因为项目的特殊需求,这种使用插进的方式最终没有被采用,因为一些控件无法做到定制化。
上一篇文章(《无组件实现大文件分片上传,断点续传》)中介绍的文件上传方式,在前端主要采用纯JavaScript来进行文件切分、验证,后台主要采用了NIO的方式进行分片的追加。而在这篇文章中,将介绍前端采用webuploader,后台采用临时目录+传统I/O方式进行分片合并的方式。
3 技术实现
31 组件引入
在webuploader官网下载必要的文件,放入项目中。在页面中进行引入;
0_组件引入png
<!-- webuploader文件上传 -->
<script src="static/webuploader/webuploadernologminjs"></script>
<link href="static/webuploader/webuploadercss" rel="stylesheet" type="text/css" />
32 前端页面实现
在前端页面中,可以不用关心css样式,但需要注意标签的id/nama属性,这些将在后面的JavaScript中使用到。用js就行了,在jsp页面设置一个div id="div1",用来装载上传文件控件,“一个按钮”在这个按钮添加onclick鼠标事件,点击是触发方法,把通过var str=documentgetElementById("div1")innerHTML获取div1的内容;documentgetElementById("div1")innerHTML=str+"上传文件控件代码",这样就可以点击一个多一个上传文件控件
上传:
MyjspForm mf = (MyjspForm) form;// TODO Auto-generated method stub
FormFile fname=mfgetFname();
byte [] fn = fnamegetFileData();
OutputStream out = new FileOutputStream("D:\\"+fnamegetFileName());
Date date = new Date();
String title = fnamegetFileName();
String url = "d:\\"+fnamegetFileName();
Upload ul = new Upload();
ulsetDate(date);
ulsetTitle(title);
ulsetUrl(url);
UploadDAO uld = new UploadDAO();
uldsave(ul);
outwrite(fn);
outclose();
下载:
DownloadForm downloadForm = (DownloadForm)form;
String fname = requestgetParameter("furl");
FileInputStream fi = new FileInputStream(fname);
byte[] bt = new byte[fiavailable()];
firead(bt);
//设置文件是下载还是打开以及打开的方式msdownload表示下载;设置字湖集,//主要是解决文件中的中文信息
responsesetContentType("application/msdownload;charset=gbk");
//文件下载后的默认保存名及打开方式
String contentDisposition = "attachment; filename=" + "javatxt";
responsesetHeader("Content-Disposition",contentDisposition);
//设置下载长度
responsesetContentLength(btlength);
ServletOutputStream sos = responsegetOutputStream();
soswrite(bt);
return null;
你下载一个jspsmart组件,网上很容易下到,用法如下,这是我程序的相关片断,供你参考: <%@ page import="comjspsmartupload" %><jsp:useBean id="mySmartUpload" scope="page" class="comjspsmartuploadSmartUpload" />
<%
String photoname="photoname";
// Variables
int count=0; // Initialization
mySmartUploadinitialize(pageContext); // Upload
mySmartUploadupload();
for (int i=0;i<mySmartUploadgetFiles()getCount();i++){ // Retreive the current file
comjspsmartuploadFile myFile = mySmartUploadgetFiles()getFile(i); // Save it only if this file exists
if (!myFileisMissing()) {
javautilDate thedate=new javautilDate();
javatextDateFormat df = new javatextSimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
photoname = dfformat(thedate);
photoname +=""+ myFilegetFileExt();
myFilesaveAs("/docs/docimg/" + photoname);
count ++; } }
%>
<% String title="1";
String author="1";
String content="1";
String pdatetime="1";
String topic="1";
String imgintro="1";
String clkcount="1"; if(mySmartUploadgetRequest()getParameter("title")!=null){
title=(String)mySmartUploadgetRequest()getParameter("title");
title=new String(titlegetBytes("gbk"),"ISO-8859-1");
}
if(mySmartUploadgetRequest()getParameter("author")!=null){
author=(String)mySmartUploadgetRequest()getParameter("author");
author=new String(authorgetBytes("gbk"),"ISO-8859-1");
}
if(mySmartUploadgetRequest()getParameter("content")!=null){
content=(String)mySmartUploadgetRequest()getParameter("content");
content=new String(contentgetBytes("gbk"),"ISO-8859-1");
}
if(mySmartUploadgetRequest()getParameter("pdatetime")!=null){
pdatetime=(String)mySmartUploadgetRequest()getParameter("pdatetime");
}
if(mySmartUploadgetRequest()getParameter("topic")!=null){
topic=(String)mySmartUploadgetRequest()getParameter("topic");
}
if(mySmartUploadgetRequest()getParameter("imgintro")!=null){
imgintro=(String)mySmartUploadgetRequest()getParameter("imgintro");
imgintro=new String(imgintrogetBytes("gbk"),"ISO-8859-1");
}
if(mySmartUploadgetRequest()getParameter("clkcount")!=null){
clkcount=(String)mySmartUploadgetRequest()getParameter("clkcount");
}
//outprintln(code+name+birthday);
%>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)