jquery ajaxfileupload异步上传插件

本文实例为大家分享了ajaxfileupload异步上传插件的使用方法,供大家参考,具体内容如下

服务器端采用struts2来处理文件上传

所需环境: jquery.js ajaxfileupload.js struts2所依赖的jar包 及struts2-json-plugin-2.1.8.1.jar

编写文件上传的Action

rush:java;"> package com.ajaxfile.action;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("serial")
public class FileAction extends ActionSupport {

private File file;
private String fileFileName;
private String fileFileContentType;

private String message = "你已成功上传文件";

public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
}

public File getFile() {
return file;
}

public void setFile(File file) {
this.file = file;
}

public String getFileFileName() {
return fileFileName;
}

public void setFileFileName(String fileFileName) {
this.fileFileName = fileFileName;
}

public String getFileFileContentType() {
return fileFileContentType;
}

public void setFileFileContentType(String fileFileContentType) {
this.fileFileContentType = fileFileContentType;
}

@SuppressWarnings("deprecation")
@Override
public String execute() throws Exception {

String path = ServletActionContext.getRequest().getRealPath("/upload");

try {
  File f = this.getFile();
  if(this.getFileFileName().endsWith(".exe")){
    message="对不起,你<a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a>的<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>格式不允许!!!";
    return ERROR;
  }
  FileInputStream inputStream = new FileInputStream(f);
  FileOutputStream outputStream = new FileOutputStream(path + "/"+ this.getFileFileName());
  byte[] buf = new byte[1024];
  int length = 0;
  while ((length = inputStream.read(buf)) != -1) {
    outputStream.write(buf,length);
  }
  inputStream.close();
  outputStream.flush();
} catch (Exception e) {
  e.<a href="https://www.jb51.cc/tag/printstacktrace/" target="_blank" class="keywords">printstacktrace</a>();
  message = "对不起,<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a><a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a>失败了!!!!";
}
return SUCCESS;

}

}

struts.xml

rush:xml;"> figuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> aram name="contentType"> text/html aram name="contentType"> text/html

注意结合Action观察struts.xml中result的配置。

contentType参数是一定要有的,否则浏览器总是提示将返回的JSON结果另存为文件,不会交给ajaxfileupload处理。这是因为struts2 JSON Plugin认的contentType为application/json,而ajaxfileupload则要求为text/html。

文件上传的jsp页面

rush:xhtml;"> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <Meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> Insert title here display: none;">
上传" onclick="return ajaxFileUpload();">

注意观察中的代码,并没有form表单。只是在按钮点击的时候触发ajaxFileUpload()方法。需要注意的是js文件引入的先后顺序,ajaxfileupload.js依赖于jquery因此你知道的。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: &lt;span id=&quot...
jQuery 添加水印 &lt;script src=&quot;../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...