FCKeditor 2.6控制上传文件的大小
程序员文章站
2022-03-20 13:30:26
...
对于上传文件的大小,FCKeditor并没有提供限制,可以通过修改源码来达到控制上传文件大小。
在Dispatcher类中,FCKeditor对文件的扩展名进行了一定的验证,通过验证的文件,可被上传。所以这里需要修改3个类的源代码。
1. Dispatcher:增加对文件大小的验证
2. UploadResponse:定义新的错误类型常量,及处理错误的方法
3. ConnectorServlet:引用包的修改
Dispatcher源码如下:
Dispatcher自定义源码如下:
自定义的UploadResponse类,除了内容全部拷贝FCKeditor中UploadResponse类的内容外,需要增加一个错误常量和一个错误方法:
以上服务器端修改完成。然后需要修改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 ;
在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 ;
下一篇: PHP在线编辑器fckeditor应用