html5Upload+css3+Servlet+Apache DiskFileItemFactory实现文件拖拽上传
/**
* 页面上显示需要上传的文件
* @private
*/
function _showUploadFile(file)
{
var reader = new FileReader();
console.log(file)
// console.log(reader);
//判断文件类型
if (file.type.match(/image*/))
{
reader.onload = function (e)
{
var formData = new FormData();
console.info("1:"+formData);
console.info(formData);
var li = $("#template li").clone();
var img = li.find("img");
var progress = li.find(".progress");
var percentage = li.find(".percentage");
percentage.text("0%");
img.attr("src", e.target.result);
$("ul", $(_uploadEle)).append(li);
$(_uploadEle).find("li").size() == 10 && $(_uploadEle).width(($(_uploadEle).width() + 8) + "px").css("overflow", "auto");
console.info(file);
//formData.uploadFile = file;
formData.append("uploadFile", file);
//上传文件到服务器
_uploadToServer(formData, li, progress, percentage);
};
reader.readAsDataURL(file);
}
else
{
console.log("此" + file.name + "不是图片文件!");
}
}
/**
* 上传文件到服务器
* @private
*/
function _uploadToServer(formData, li, progress, percentage)
{
var xhr = new XMLHttpRequest();
xhr.open("POST", "http://localhost:8098/html5Upload/FileUploadServlet.html", true);
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest', 'Content-Type', 'multipart/form-data;');
//HTML5新增的API,存储了上传过程中的信息
xhr.upload.onprogress = function (e)
{
var percent = 0;
if (e.lengthComputable)
{
//更新页面显示效果
percent = 100 * e.loaded / e.total;
progress.height(percent );
percentage.text(percent + "%");
percent >= 100 && li.addClass("done");
}
};
xhr.send(formData);
}以上是js核心代码,关于源码可以去github下载:登录www.github.com搜索html5upload即可
*******************************************************************************************************
@SuppressWarnings("unchecked")
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String folderPath = "D:\\uploadFile";
DiskFileItemFactory factory = new DiskFileItemFactory();
File dirFile = new File(folderPath);
factory.setRepository(dirFile);
ServletFileUpload uploadServlet = new ServletFileUpload(factory);
try {
List<FileItem> lst = uploadServlet.parseRequest(request);
for (FileItem item : lst) {
// 取得上传的文件名
String fileName = item.getName();
if (fileName != null) {
try {
File f = new File(folderPath, fileName);
} catch (Exception e) {
e.printStackTrace();
}
}
try {
item.write(new File(folderPath, fileName));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}以上是servlet核心代码

声明一下,这里这仅限小文件,不能传大文件,如果说你有大文件上传,可以拿出来交流一下的。
之所以发帖子,是因为之前找到的都是php的,很少又java的。。。
--我要从南走到北,还要从早走到黑;如果你见我有点累,就请你为我倒碗水。
...全文
相关推荐
Servlet实现文件上传,可多文件上传示例
Servlet 实现文件上传功能是 Web 开发中常见的一项任务,主要涉及到 HTTP 协议、HTML 表单以及服务器端的处理。
servlet实现文件上传、预览、下载、删除功能
; } private File uploadFile(HttpServletRequest request) { // 使用 Apache Commons FileUpload 库来处理文件上传 DiskFileItemFactory
servlet+jsp文件上传示例
Apache Commons FileUpload库为这一过程提供了便利,它可以解析HTTP请求体中的多部分数据,包括文件内容。以下是使用Servlet和JSP实现文件上传的基本步骤:1.
jQuery Uploadify + Apache Fileupload异步上传文件示例
其主要特点包括进度条显示、文件类型过滤、自定义上传按钮等。Uploadify通过HTML5的FormData对象或Flash技术(对于不支持HTML5的浏览器)实现异步文件上传。2.
jsp实现文件和图片上传
**实现Servlet**:在Servlet中,使用`Commons FileUpload`库(Apache的开源项目)解析请求中的多部分数据。这个库提供了一个方便的API来处理文件上传。4.


