-
jspsmartupload插件模拟ajax上传文件
普通类 -
- 支持
- 批判
- 提问
- 解释
- 补充
- 删除
-
-
一、引入jspsmartupload插件jar包
见\WebRoot\WEB-INF\lib\jspSmartUpload_supportZH.jar (一般jspSmartUpload插件不支持文件中文名,易出现乱码问题,这个jar包在原来的jar包基础上做了修改,所以这个jar包是支持文件中文名的)
插件作用以及应用:模拟ajax上传文件,社区中用蒙版实现分享资源、发布作品不能像以前普通的表格来上传文件,所以用的是jspsmartupload插件。
-
二、jsp中上传文件代码
<form id="top_shareResource_submitfileForm" name="top_shareResource_submitfileForm" method="post" action="/community/resource/upload.jsp" enctype="multipart/form-data" onSubmit="return checkShareResourceFile();" target="hiddenIframe">
<!-- 上传文件-开始 -->
<div class="top_block_title ml10 mr10 mt10 cb">
<div class="top_block_title_bar pl5"><%=PropertyUtil.readProperty("uploadfile",language)%>(<%=PropertyUtil.readProperty("notuploadfileandweb",language)%>)</div>
<div class="top_block_title_content">
<input type="file" id="from" name="from" type="file" size="75" onkeydown="event.returnValue=false;" onpaste="return false" class="top_input_file"></input>
</div>
</div>
<!-- 上传文件-结束 -->
<input type="submit" class="uploadfileclass" value="<%=PropertyUtil.readProperty("cmuploadfile",language)%>" onclick="javascript:void(0)" id="top_shareResource_Upload"/>
<iframe id="hiddenIframe" name="hiddenIframe" style="display:none;"></iframe>
</form>注意:<iframe id="hiddenIframe" name="hiddenIframe" style="display:none;"></iframe>很必要!!!
详见中用蒙版分享资源的蒙版html代码
-
三、上传文件时js验证
function checkShareResourceFile(){
if(document.getElementById("from").value==""){
alert("<%=PropertyUtil.readProperty("selectonefile",language)%>");
return false;
}
if(isHarmfulFile(document.getElementById("from").value)){
alert("<%=PropertyUtil.readProperty("filealarm",language)%>");
return false;
}
document.getElementById("top_shareResource_Upload").disabled=true;//为了防止重复提交的问题
document.getElementById("top_shareResource_Upload").value="<%=PropertyUtil.readProperty("insubmit",language)%>";
return true;
}-
四、文件提交到/community/resource/upload.jsp
<%@ page language="java"
import="java.util.*,com.uisk.hep.bo.*,hep.webapp.session.*,com.jspsmart.*,com.jspsmart.upload.*" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ page import="etc.util.PropertyUtil,etc.util.SysConstants"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<%
//新建一个SmartUpload对象
SmartUpload su = new SmartUpload();
long file_size_max=800000000;
String fileName2="",ext="",testvar="";
String url="upImages\\community\\resource\\"; //应保证在根目录中有此目录的存在(也就是说需要自己建立相应的文件夹)
User user = SessionManager.getInstance().getUser(request);
String language=SysConstants.SYS_LANGUAGE;
if(user!=null){
language=user.getLanguage();
}
//上传初始化
su.initialize(pageContext);
// 设定上传限制
//1.限制每个上传文件的最大长度。
// su.setMaxFileSize(file_size_max);
//2.限制总上传数据的长度。
// su.setTotalMaxFileSize(2000000000);
boolean sign = false;
//3.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat,bak扩展名的文件和没有扩展名的文件。
try {
// su.setAllowedFilesList("doc,txt,rar,jpg,png,jsp,docx,ppt,xml");
su.setDeniedFilesList("exe,bat,bak");
//上传文件
su.upload();
} catch (Exception e) {
e.printStackTrace();
%>
<SCRIPT language=javascript>
alert("<%=PropertyUtil.readProperty("notuploadfileandweb",language)%>");
window.history.go(-1);
</script>
<%
}
try{
com.jspsmart.upload.SmartFile myFile = su.getFiles().getFile(0);
// System.out.println("fileame:"+myFile.getFileName());
if(myFile!=null){
sign = true;
}
//String myFileName=myFile.getFileName(); //取得上载的文件的文件名
ext= myFile.getFileExt(); //取得后缀名
int file_size=myFile.getSize(); //取得文件的大小
String saveurl="";
if(file_size<file_size_max){
//更改文件名,取得当前上传时间的毫秒数值
Calendar calendar = Calendar.getInstance();
String filename = String.valueOf(calendar.getTimeInMillis());
saveurl=application.getRealPath("/")+url;
saveurl+=filename+"."+ext; //保存路径
myFile.saveAs(saveurl,SmartUpload.SAVE_PHYSICAL);
String filepath = "/upImages/community/resource/"+filename + "." + ext;
// System.out.println("filepath:"+filepath);
if(sign){
%>
<SCRIPT language=javascript>
// alert('上传文件成功!');
</script>
<%
out.println("<script language=javascript>parent.callback('"+filepath+"','resource')</script>");
}else{
%>
<SCRIPT language=javascript>
alert('<%=PropertyUtil.readProperty("uploadFailed",language)%>');
</script>
<%
}
// String ret = "parent.HtmlEdit.focus();";
// ret += "var range = parent.HtmlEdit.document.selection.createRange();" ;
// ret += "range.pasteHTML('<img src=\"" + request.getContextPath() + "/upload/" + filename + "." + ext + "\">');" ;
// ret += "alert('上传成功!');";
// ret += "window.location='upload.htm';";
// out.print("<script language=javascript>" + ret + "</script>");
}
}catch (Exception e){
out.print(e.toString());
}
%>-
五、使用jspsmartupload插件模拟ajax上传文件已经完毕
如果想更多的了解jspsmartupload插件,见文档:jspSmartUpload使用文档.docx
-
-
- 标签:
- ret
- 文件
- string
- 39
- 上传文件
- language
- 模拟ajax
- script
- div
- propertyutil.readproperty
- jspsmartupload
- alert
- 上传
-
学习元评论 (0条)
聪明如你,不妨在这 发表你的看法与心得 ~