概要:

在Java中,利用ajaxfileupload.js+commons-fileupload-1.3.1.jar 实现文件上传功能。

关键字:

Java,上传,ajaxfileupload,fileupload

内容:

进行Web方面的开发时,文件上传是经常会使用到的,所以如果能有一个简单、实用、性能良好的上传组件,我想是极好的,那么ajaxfileupload.js应该是个不错的选择,下面我就分享一次我的使用经验。

这次文件上传的整个过程主要有一个Jsp文件、一个Java文件、一个Js文件组成,首先我们来看一下Jsp页面的代码:

文件1:upload.jsp

是的,你没有看错,jsp页面就只要这两行代码,接下来是js文件的代码。

文件2:upload.js

var basePath = null;

$(function() {

basePath = $("#basePath").attr("value");

$("#scbtn").click(function() {

ajaxFileUpload();

});

});

// 文件上传

function ajaxFileUpload() {

$.ajaxFileUpload({

url : basePath + "upload.ajax",// 用于文件上传的服务器端请求地址

secureuri : false,// 一般设置为false

fileElementId : 'attachfiles',// 文件上传控件的id属性

dataType : 'json',// 返回值类型 一般设置为json

enctype : "multipart/form-data",

success : function(data, status) // 服务器成功响应处理函数

{

},

error : function(data, status, e) {

}

});

return false;

}

Js部分的代码主要是利用jQuery中发送ajax请求,访问后台的代码,那么接下来自然就是Java代码,你准备好了吗?

文件3:UploadAjaxManager.java

package org.4spaces.demo;

import java.io.File;

import java.io.IOException;

import java.io.UnsupportedEncodingException;

import java.util.ArrayList;

import java.util.List;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;

import org.apache.commons.fileupload.FileUploadException;

import org.apache.commons.fileupload.disk.DiskFileItemFactory;

import org.apache.commons.fileupload.servlet.ServletFileUpload;

/**

*

* @author 四个空格:https://www.4spaces.org

*

*/

public class UploadAjaxManager extends HttpServlet {

private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

String uri = request.getRequestURI();

int startIndex = uri.lastIndexOf("/") + 1;

int endIndex = uri.lastIndexOf(".");

String action = uri.substring(startIndex, endIndex);

if (action.equals("upload")) {

try {

request.setCharacterEncoding("UTF-8");

} catch (UnsupportedEncodingException e1) {

e1.printStackTrace();

}

DiskFileItemFactory fac = new DiskFileItemFactory();

ServletFileUpload upload = new ServletFileUpload(fac);

upload.setHeaderEncoding("UTF-8");

List fileList = new ArrayList();

try {

fileList = upload.parseRequest(request);

} catch (FileUploadException ex) {

ex.printStackTrace();

}

String targetPath = request.getSession().getServletContext()

.getRealPath("jsp/upload")

+ "/";

String fileName = "blank.doc";

for (FileItem item : fileList) {

if (!item.isFormField()) {

fileName = item.getName();

File saveFile = new File(targetPath + fileName);

try {

item.write(saveFile);

} catch (Exception e) {

e.printStackTrace();

}

}

}

}

}

protected void doPost(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

doGet(request, response);

}

}

当然,上面的代码一定不要忘记导包: commons-fileupload-1.3.1.jar和commons-io-2.4.jar.

好了,有了上面的代码,你就可以轻松的实现上传文件了。

PS:

奉上完整的工程和代码的地址:工程源代码 ;

java ajaxupload_Java中利用ajaxfileupload.js组件实现文件的上传功能相关推荐

  1. 关于Java项目中,word和Excel类型文件的预览功能实现

    关于Java项目中,word和Excel类型文件的预览功能实现 背景 Aspose说明 Aspose.Words Aspose.Cells pom依赖引入 引入license.xml(授权文件) 创建 ...

  2. 大文件分片上传前端框架_基于Node.js的大文件分片上传

    基于Node.js的大文件分片上传 我们在做文件上传的时候,如果文件过大,可能会导致请求超时的情况.所以,在遇到需要对大文件进行上传的时候,就需要对文件进行分片上传的操作.同时如果文件过大,在网络不佳 ...

  3. php 拖拽 上传文件 进度,在Vue中如何实现带进度条的文件拖动上传功能

    这篇文章主要介绍了Vue实现带进度条的文件拖动上传功能,本文通过实例代码给大家介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下 1. 基本界面 content="width=devic ...

  4. 源生ajax同步异步请求,源生JS怎样实现文件异步上传

    这次给大家带来源生JS怎样实现文件异步上传,源生JS实现文件异步上传的注意事项有哪些,下面就是实战案例,一起来看一下. 名称 文件 确定 function ajaxUploadFile() { var ...

  5. java 文件下载 组件_java文件夹上传下载组件

    核心原理: 该项目核心就是文件分块上传.前后端要高度配合,需要双方约定好一些数据,才能完成大文件分块,我们在项目中要重点解决的以下问题. *如何分片: *如何合成一个文件: *中断了从哪个分片开始. ...

  6. curl http header_利用Linux命令cURL实现文件定时上传到ftp服务器的小程序,实用

    前言 前段时间群里讨论,想实现某个文件定时上传到服务器要怎么来实现.我记得之前做过 一个项目:为高通的iot模组编写FOTA功能:实现模组可以远程下载升级镜像包,实现版本升级功能.并当时使用的一个超级 ...

  7. 小程序基础开发(四):weui-wxss组件表单页面,WxValidate.js组件表单验证上传

    一,使用weui-wxss组件做一个表单页面 WeUI组件库简介 这是一套基于样式库weui-wxss开发的小程序扩展组件库,同微信原生视觉体验一致的UI组件库,由微信官方设计团队和小程序团队为微信小 ...

  8. dropzone.js php,Laravel 5.1 中基于 Dropzone.js 实现图片拖拽上传及删除功能

    注:本教程代码适用于Laravel 5.1版本. 1.概述 Dropzone 是目前最好的免费文件拖拽上传库,它拥有很多特性和选项以便你可以使用多种方式来自定义. 在Laravel项目集成Dropzo ...

  9. Java连接FTP服务器并且实现对其文件的上传和下载

    概述 FTP是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为"文传协议".FTP作为网络共享文件的传输协议,在网络应用软件中具有广泛的应用.F ...

最新文章

  1. 使用Rancher管理Docker
  2. 一些信号与自己的卷积结果
  3. pyqt 槽任意参数_PyQt5快速入门(二)PyQt5信号槽机制
  4. 让360安全浏览器默认使用谷歌内核
  5. java网页统计访客量_Java中的访客设计模式
  6. 小木棍 [数据加强版]*
  7. 【BZOJ2115】Xor(线性基---求无向图1-n路径上最大的边权异或值--可出现环)
  8. 大学报到前最后的技术——VMware探究
  9. 计算机技能高考带什么文具,高考必备——21条考场抓分细节
  10. 如何用ps做计算机二级报名照片,等级考试照片PS教程
  11. 为什么JAVA图标是一杯咖啡?
  12. 怎么设置系统消息免打扰,看这里就够了,WIN10系统如何设置系统消息免打扰
  13. Android APP安装后不在桌面显示图标的应用场景举例和实现方法
  14. MySQL学习笔记整理(上部)
  15. easy_nbt——Bugku
  16. java输入菱形边长,输出菱形
  17. 【gis技术】web墨卡托投影和经纬度直投的差别
  18. SSM配置地狱?一篇整合模板迅速解决!【建议收藏】
  19. vue v-for和v-if同时使用
  20. GCC 命令行详解 -L -l

热门文章

  1. poj 2318 TOYS
  2. 全心加入web前端开发,向上吧!
  3. 总结一下数据库的 一对多、多对一、一对一、多对多 关系
  4. Swift实战-豆瓣电台(八)播放进度与时间
  5. 在线制作GIF图片项目愿景与范围
  6. error parsing xml:unbound prefix
  7. MyEclipse常用设置方法
  8. 很多人搞不清楚的两个类Vector,ArrayList
  9. 微软VC/MFC FAQ(转)
  10. [转载] python--isalnum()函数