<tr >
<t d >
图片上传
</td >
<td colspan="5" align="left" style="text-align: left" >
<div id="filediv_infvaluelog_pic" >
</div >
<input type="button" id="file_btn_infvaluelog_add_pic" value="上传" />
</td >
</tr >
2.脚本代码
var uploadbutton3 = KindEditor.uploadbutton( {
button : KindEditor('#file_btn_infvaluelog_add_pic'),
fieldName : 'file',
url : 'upload_file_XXX_json?dir=image', //文件上传的action,设置dir为image
afterUpload : function(data) {
if (data.error === 0) {
//正确的时候执行
} else {
//上传错误后,提示
alert(data.message)
}
},
afterError : function(str) {//没正确执行时异常
alert('自定义错误信息: ' + str)
}
})
uploadbutton3.fileBox.change(function(e) {
uploadbutton3.submit()
})
})
3.action方法
public String fileupload() throws FileNotFoundException{
//最大文件大小
long maxSize = 1000000
InputStream is = null
if(imgFile!=null&&imgFile.isFile()){
is = new FileInputStream(imgFile)//传过来的文件
}else{
if(file.isFile()){
imgFile=file
imgFileFileName=fileFileName
is = new FileInputStream(imgFile)//传过来的文件
}else{
error = 1
message = "请选择要上传的文件。"
}
}
HttpServletRequest request = ServletActionContext.getRequest()
String savePath = null
String saveUrl = null
//检查目录
File rootDir = new File(savePath)
if(!rootDir.isDirectory()){
error = 1
message = "上传根目录不存在。"
}
//检查目录写权限
if(!rootDir.canWrite()){
error = 1
message = "上传根目录没有写权限。"
}
String dirName = null
if (dir == null) {
dirName = "other"
}else{
dirName = dir
}
//创建文件夹
savePath += "/"+dirName + "/"
saveUrl += "/"+dirName + "/"
File saveDirFile = new File(savePath)
if (!saveDirFile.exists()) {
saveDirFile.mkdirs()
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd")
String ymd = sdf.format(new Date())
savePath += ymd + "/"
saveUrl += ymd + "/"
File dirFile = new File(savePath)
if (!dirFile.exists()) {
dirFile.mkdirs()
}
//检查文件大小
if(imgFile.length() >maxSize){
error = 1
message = "上传文件大小超过限制。"
}else{
//定义允许上传的文件扩展名
HashMap extMap = new HashMap()
extMap.put("image", "gif,jpg,jpeg,png,bmp")
extMap.put("flash", "swf,flv")
extMap.put("media", "swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb")
extMap.put("file","gif,jpg,jpeg,png,bmp,doc,docx,xls,xlsx,ppt,htm,html,txt,zip,rar,gz,bz2")
//检查扩展名
String fileExt = imgFileFileName.substring(imgFileFileName.lastIndexOf(".") + 1).toLowerCase()
if(!Arrays.asList(extMap.get(dirName).split(",")).contains(fileExt)){
error = 1
message = "上传文件扩展名是不允许的扩展名。\n只允许" + extMap.get(dirName) + "格式。"
}else{
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss")
String newFileName = df.format(new Date()) + "_" + new Random().nextInt(1000) + "_"
try{
if(imgFileFileName.indexOf(",")!=-1){
imgFileFileName=imgFileFileName.replaceAll(",", "")
}
File deskFile = new File(savePath+newFileName+imgFileFileName)
OutputStream os = new FileOutputStream(deskFile)
byte[] bytefer = new byte[1024]
int length = 0
while ((length = is.read(bytefer)) != -1) {
os.write(bytefer, 0, length)
}
os.close()
is.close()
error = 0
//message = "上传文件成功"
//url = urlRoot + saveUrl + newFileName + imgFileFileName
if("file".equals(dir)){
url = savePath + newFileName + imgFileFileName
}else{
url = saveUrl + newFileName + imgFileFileName
}
url = url.trim().replaceAll("\\\\\\\\", "/")
url = url.replaceAll("\\\\", "/")
//检查是否是图片,是才进行压缩
if(url.endsWith(".jpg")||url.endsWith(".jpeg")||url.endsWith(".png")||url.endsWith(".bmp")||url.endsWith(".gif")){
//压缩
ImgProce ip = new ImgProce()
ip.setWideth(400)
ip.proce(savePath+newFileName+imgFileFileName, "400")
}
}catch(Exception e){
error = 1
message = "上传文件失败。"
}
}
}
this.map=new HashMap()
this.map.put("error", error)
if(error==0){
this.map.put("url", url)
this.map.put("filename",imgFileFileName)
}else{
this.map.put("message", message)
}
return "SUCCESS"
}
以ASP.NET 为例将下载下来的 编辑器放到根目录下面
使用编辑器需要首先将LitJSON.dll文件放到bin目录下面
在examples文件夹下面新建立一个test.aspx
只需设置test.aspx页面即可
******************************************************test.aspx页面设置**********************************************
<html>
<head>
<meta charset="utf-8" />
<title>KindEditor ASP.NET</title>
<script charset="utf-8" src="../kindeditor-min.js"></script>
<script charset="utf-8" src="../lang/zh_CN.js"></script>
<script>
KindEditor.ready(function (K) {
K.create('#content', {
uploadJson: '../asp.net/upload_json.ashx',
fileManagerJson: '../asp.net/file_manager_json.ashx',
allowFileManager: true
})
})
</script>
</head>
<body>
<h3>默认模式</h3>
<form id="form1" name="example">
<textarea name="content" id="content" style="width:800pxheight:400pxvisibility:hidden">KindEditor</textarea>
<p>
<input type="button" name="getHtml" value="取得HTML" />
<input type="button" name="isEmpty" value="判断是否为空" />
<input type="button" name="getText" value="取得文本(包含img,embed)" />
<input type="button" name="selectedHtml" value="取得选中HTML" />
<br />
<br />
<input type="button" name="setHtml" value="设置HTML" />
<input type="button" name="setText" value="设置文本" />
<input type="button" name="insertHtml" value="插入HTML" />
<input type="button" name="appendHtml" value="添加HTML" />
<input type="button" name="clear" value="清空内容" />
<input type="reset" name="reset" value="Reset" />
</p>
</form>
</body>
</html>
设置完成后上传本地文件 注:如在iis下面是用编辑需要设置访问asp.net文件夹下的权限权限
默认情况下kindeditor上传的图片在编辑器的根目录/attached/目录下。以日期建一个目录,然后保存文件。有些时候大概我们并不想这样。考虑到更新编辑器,或更换编辑器不太方便。比如我现在想把上传的文件保存在根目录下的uploadfiles目录下,需要修改以下代码:首先,打开文件php\upload_json.php,在大约第16行到第19行,定义了文件保存目录路径和文件保存目录URL,我们需要修改为:
//文件保存目录路径
$save_path = $_SERVER['DOCUMENT_ROOT'].'\\uploadfiles\\'
//文件保存目录URL
$save_url = '/uploadfiles/'
解释一下:$save_path 即为最后保存文件的目录。这里就是根目录下的uploadfiles
$save_url 即为上传成功后,图片的URL地址。
这样,保存地址就变成了 根目录下的 uploadfiles/年月日/xxxxx.jpg了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)