如何清除FileUpload中的文件

如题所述

jquery异步上传,一般来说这里上传调用的是系统专门上传的action,上传好后返回上传文件信息。你这里result.files就是返回的上传结果。这个需要你在后台自己封装。你前端需要什么,后台就封装什么。
比如我以前写过一个
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Map<String, Object> fileObject = new HashMap<String, Object>();
fileinfo.put("size", size);//原始文件大小
fileObject.put("original", original);//原始文件唯一标识
fileObject.put("originalPath", originalPath);//原始文件临时存储目录
fileObject.put("thumb", thumb);//图片的预览文件唯一标识
fileObject.put("thumbPath", thumbPath);//图片预览文件临时存储目录
fileObject.put("name", fileFileName);//原始图片名称
fileObject.put("url", url);//原始图片的web查看地址,这个可以设置img.src属性
fileObject.put("thumbnailUrl", thumbnailUrl);//预览图片的web查看地址
fileObject.put("contentType", fileContentType);//上传文件type
fileObject.put("deleteType", "POST");//这是我自己封装的post删除
//这个是我自己封装的删除路径
fileObject.put("deleteUrl", super.getRequest().getContextPath() + "/removeUpload.do?id=" + original);
Map[] fileArray = new HashMap[1];
fileArray[0] = fileObject;
JSONObject jsonObject = new JSONObject();
jsonObject.put("files", JSONArray.fromObject(fileArray));
HttpServletResponse response = getResponse();
response.setContentType("application/json;charset=UTF-8");
response.getWriter().write(jsonObject.toString());
response.getWriter().flush();
而前断可以将上传文件的唯一标识放到一个隐藏域里,表单提交的时候一起提发送到后台,再根据唯一标识去取上传文件信息或写或复制转移。
前断fileuploaddone我是这么用的
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
on('fileuploaddone', function(e , data){
//上传结果
$.each(data.result.files, function(index , file){
if (file.url) {
var link = $('<a>').attr('target', '_blank').prop('href', file.url);
//这个是文件上传后的展示区域,可以在fileuploadadd事件里构建
var $imgdiv = $(data.context.children()[index]);
var $link = $imgdiv.find("canvas").wrap(link);
$imgdiv.append($('<input type="hidden" name="imagefileid"/>').prop('value', file.original));
$imgdiv.append($('<input type="hidden" name="imagefilename"/>').prop('value', file.name));
} else if (file.error) {
var error = $('<span class="text-danger"/>').text(file.error);
$(data.context.children()[index]).append(error);
}
});
})
温馨提示:答案为网友推荐,仅供参考