FCKeditor 2.6控制上传文件的大小

对于上传文件的大小,FCKeditor并没有提供限制,可以通过修改源码来达到控制上传文件大小。
在Dispatcher类中,FCKeditor对文件的扩展名进行了一定的验证,通过验证的文件,可被上传。所以这里需要修改3个类的源代码。
1. Dispatcher:增加对文件大小的验证
2. UploadResponse:定义新的错误类型常量,及处理错误的方法
3. ConnectorServlet:引用包的修改
Dispatcher源码如下:
//检查文件扩展名
if (type.isDeniedExtension(FilenameUtils.getExtension(fileName))) {
uploadResponse = UploadResponse.getInvalidFileTypeError();
} else if (type.equals(ResourceType.IMAGE)
&& PropertiesLoader.isSecureImageUploads()
&& !UtilsFile.isImage(uplFile.getInputStream())) {
uploadResponse = UploadResponse.getInvalidFileTypeError();
} else {
//文件上传的操作这里省略
}

Dispatcher自定义源码如下:
//检查文件扩展名
if (type.isDeniedExtension(FilenameUtils.getExtension(fileName))) {
uploadResponse = UploadResponse.getInvalidFileTypeError();
} else if (type.equals(ResourceType.IMAGE)
&& PropertiesLoader.isSecureImageUploads()
&& !UtilsFile.isImage(uplFile.getInputStream())) {
uploadResponse = UploadResponse.getInvalidFileTypeError();
} else if(uplFile.getSize() > 10*1024) { //检查文件大小
uploadResponse = UploadResponse.getInvalidFileSizeError();
} else {
//文件上传的操作这里省略
}

自定义的UploadResponse类,除了内容全部拷贝FCKeditor中UploadResponse类的内容外,需要增加一个错误常量和一个错误方法:
/** Error number INVALID FILE SIZE */
public static final int EN_INVALID_FILE_SIZE_ERROR = 205;
public static UploadResponse getInvalidFileSizeError() {
LocalizedMessages lm = LocalizedMessages.getInstance(ThreadLocalData.getRequest());
return new UploadResponse(EN_INVALID_FILE_SIZE_ERROR, lm.getInvalidFileTypeSpecified());
}

以上服务器端修改完成。然后需要修改WebRoot/fckeditor/editor/dialog/fck_image/fck_image.js文件。在其中加入对我们新定义的205方法的alert语句:
case 204 : alert( "A file is too big. You should change the file" ) ;
return ;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值