java upload.js_Java中利用ajaxfileupload.js組件實現文件的上傳功能

a493737c1d3de7f8033eb5088b5f0fd0.png

概要:

在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:

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

參考文章:https://www.cnblogs.com/kissdodog/archive/2012/12/15/2819025.html ;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值