官网地址:
http://www.phpletter.com/Demo/AjaxFileUpload-Demo/
ajaxfileupload重复上传问题:
http://www.cnblogs.com/zerojevery/p/3897294.html
说明:结合struts2
1.JSP.
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link type="text/css" href="ajaxfileupload/ajaxfileupload.css">
<script type="text/javascript" src="jquery/jquery.js"></script>
<script type="text/javascript" src="ajaxfileupload/ajaxfileupload.js"></script>
<script type="text/javascript">
function ajaxFileUpload(obj) {
if (validateAttache(obj)) {
$("#loading")
.ajaxStart(function(){
$(this).show();
})
.ajaxComplete(function(){
$(this).hide();
});
$.ajaxFileUpload({
url : 'uploadAction!upload.action',// 用于文件上传的服务器端请求地址
secureuri : false,// 一般设置为false
fileElementId : 'file',// 文件上传空间的id属性 <input type="file"
dataType : 'json',// 返回值类型 一般设置为json
success : function(data, status) // 服务器成功响应处理函数
{
alert('success');
},
error : function(data, status, e) {// 服务器响应失败处理函数
alert('failurdde' + data);
}
})
return false;
}
}
function validateAttache(obj) {
var file = obj;
var tmpFileValue = file.value;
// 校验图片格式
if (/^.*?\.(rar|zip|apk|udg)$/.test(tmpFileValue.toLowerCase())) {
return true;
} else {
$.messager.alert('提示', '只能上传rar、zip、udg或apk格式的附件!', 'error');
return false;
}
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
<input type="text" id="fileUploadTextId" name="fileUploadTextName" readonly />
<a href="javascript:void(0)" onclick="file.click();">浏览...</a>
<input type="file" id="file" onchange="return ajaxFileUpload(this);" name="file" style="display: none"/>
<img id="loading" src="ajaxfileupload/loading.gif" style="display:none;">
</body>
</html>
2.Action
package com.utstar.action;
import java.io.File;
import java.io.IOException;
import org.apache.struts2.convention.annotation.Action;
@Action(value = "uploadAction")
public class UploadAction {
private static final UploadConfig config = UploadConfig.getInstance();
private File file;
private String fileFileName;
private String fileFileContentType;
public void upload() {
try {
// 文件保存路径
String targetDirVal = config.getFilePath();
if (!targetDirVal.endsWith("/")) {
targetDirVal += "/";
}
File targetDir = new File(targetDirVal);
if (!targetDir.exists()) {
targetDir.mkdirs();
}
File targetFile = new File(targetDirVal + fileFileName);
if (!targetFile.exists()) {
targetFile.createNewFile();
}
FileUtil.copyFile(this.file, targetFile);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//return "success";
}
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;
}
}
UploadConfig.java
package com.utstar.action;
import java.util.Properties;
/**
*
*/
public class UploadConfig {
private volatile static UploadConfig singleton;
private static final String FILENAME = "attachment.properties";
private Properties props = null;
//upload to linux
private String filePath = "/attachments";
private UploadConfig() {
props = new Properties();
try {
this.props.load(this.getClass().getClassLoader()
.getResourceAsStream(FILENAME));
this.filePath = props.getProperty("ABSOLUTE_SERVER_UPLOAD_FILE_PATH");
} catch (Exception e) {
e.printStackTrace();
}
}
public static UploadConfig getInstance() {
if (singleton == null) {
synchronized (UploadConfig.class) {
if (singleton == null) {
singleton = new UploadConfig();
}
}
}
return singleton;
}
public String getFilePath() {
return filePath;
}
public void setFilePath(String filePath) {
this.filePath = filePath;
}
}
FileUtil
package com.utstar.action;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* 文件操作工具
*
*/
public class FileUtil {
// 复制文件
public static void copyFile(File sourceFile, File targetFile)
throws IOException {
BufferedInputStream inBuff = null;
BufferedOutputStream outBuff = null;
try {
// 新建文件输入流并对它进行缓冲
inBuff = new BufferedInputStream(new FileInputStream(sourceFile));
// 新建文件输出流并对它进行缓冲
outBuff = new BufferedOutputStream(new FileOutputStream(targetFile));
// 缓冲数组
byte[] b = new byte[1024 * 5];
int len;
while ((len = inBuff.read(b)) != -1) {
outBuff.write(b, 0, len);
}
// 刷新此缓冲的输出流
outBuff.flush();
} finally {
// 关闭流
if (inBuff != null)
inBuff.close();
if (outBuff != null)
outBuff.close();
}
}
/**
*
* @param filepath
* @throws IOException
*/
public static void del(String filepath) throws IOException {
File f = new File(filepath);// 定义文件路径
if (f.exists() && f.isDirectory()) {// 判断是文件还是目录
if (f.listFiles().length == 0) {// 若目录下没有文件则直接删除
f.delete();
} else {// 若有则把文件放进数组,并判断是否有下级目录
File delFile[] = f.listFiles();
int i = f.listFiles().length;
for (int j = 0; j < i; j++) {
if (delFile[j].isDirectory()) {
del(delFile[j].getAbsolutePath());// 递归调用del方法并取得子目录路径
}
delFile[j].delete();// 删除文件
}
}
}
}
}
分享到:
相关推荐
jquery ajaxfileupload上传插件,用于ajax的异步文件上传
jQuery插件AjaxFileUpload用来实现ajax文件上传,该插件使用非常简单,接下来写个demo演示怎么用AjaxFileUpload插件实现文件上传。 1、引入AjaxFileUpload插件相关的js 复制代码 代码如下:[removed]resources/js/...
jQuery插件AjaxFileUpload用来实现ajax文件上传,该插件使用非常简单,接下来写个demo演示怎么用AjaxFileUpload插件实现文件上传。
主要介绍了一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子,需要的朋友可以参考下
jQuery的ajaxFileUpload.js。感觉这种异步上传的方式非常好用
NULL 博文链接:https://aokunsang.iteye.com/blog/1014274
jquery ajaxfileupload.js异步上传插件
jQuery.AjaxFileUpload.js, jQuery插件神奇地让文件输入通过ajax上传 这个插件上传文件 somehwere,并将响应传递给回调,无其他。它不依赖于特定的HTML,只需给它一个 <input type="file">它不要求你的服务器...
jquery+ajaxfileupload+html文件上传,用ajaxfileupload插件做的上传文件
主要介绍了jQuery插件ajaxfileupload.js实现上传文件的相关资料,感兴趣的小伙伴们可以参考一下
主要介绍了Asp.net MVC中使用JQuery插件ajaxFileUpload上传文件,需要的朋友可以参考下
主要为大家详细介绍了jQuery插件ajaxFileUpload使用教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
主要介绍了PHP结合jQuery插件ajaxFileUpload实现异步上传文件实例,感兴趣的小伙伴们可以参考一下
折腾了一天,亲自调试完成亲测jquery+ajaxfileupload+demo
主要介绍了jQuery插件ajaxFileUpload异步上传文件的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
主要为大家详细介绍了jQuery插件ajaxFileUpload使用实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
jQuery插件AjaxFileUpload用来实现ajax文件上传,该插件使用非常简单,接下来我们来看下用AjaxFileUpload插件实现文件上传的方法,有需要的小伙伴可以参考下
通过修改终于使得ajaxfileupload兼容jquery3,代码已上线运行。
主要介绍了JQuery插件ajaxfileupload.js异步上传文件实例,本文直接给出了HTML代码和JS代码以及后台处理代码,需要的朋友可以参考下