在基于用户凭据的 aps.net mvc4 应用程序中
例如对于一般用户 - 他们只能上传 4 张 .png、.jpg 类型的图像,每个管理员用户的文件大小最大为 10k - 他们可以上传 10 张任何文件类型的图像,每个文件大小最大为 100K
目前,我们让它在图像上传到服务器后检查服务器上的这些条件
寻找一种事先对客户本身进行检查的方法
谢谢
在基于用户凭据的 aps.net mvc4 应用程序中
例如对于一般用户 - 他们只能上传 4 张 .png、.jpg 类型的图像,每个管理员用户的文件大小最大为 10k - 他们可以上传 10 张任何文件类型的图像,每个文件大小最大为 100K
目前,我们让它在图像上传到服务器后检查服务器上的这些条件
寻找一种事先对客户本身进行检查的方法
谢谢
在我看来,最直接的方法是破解 Image 插件的 JavaScript 代码。我发现没有正确记录的插件对话框的一个方面是该onOK()
函数可以返回false
以防止对话框本身被解除。您可以在其中触发验证以在验证失败时返回false
。onOk()
在Image 插件代码的人类可读版本中,您会发现onOk()
从这个特定版本的第 361 行开始。
我会在文件中放置一个最大文件大小设置ckeditor/config.js
,并检查它以进行验证。
至于获取文件的实际大小,我猜一旦用户在文件选择器中选择了一个文件,您就可以访问有关该文件的信息。我不知道CKEditor
API 中是否有此功能,或者您是否必须利用其他一些 JS 库,但您需要以某种方式获取客户端所选文件的文件大小。onOk()
您可以触发您的自定义代码来确定这一点,并根据config.js
. 可能有一些易于找到的示例来说明一般如何使用配置。我认为获取本地文件大小可能是最棘手的部分。
我建议在上面链接的图像插件 JS 中四处寻找,从那里开始onOk()
并从那里开始工作,看看你是否可以在那里找到任何有用/有用的东西。
CKEditor 第 4 版文档页面似乎比第3 版更好,但我不知道您使用的是哪个版本。我建议调查您的版本的 API 文档(请注意,我发现版本 3 文档在防止对话框解除时是不正确的;我必须CKEditor
通过文档站点查看代码本身来弄清楚这一点,因为我在本地只有缩小的源文件)。
这个答案也可能会有所帮助;它专注于自定义文件对话框而不是标准对话框。