1

在基于用户凭据的 aps.net mvc4 应用程序中

例如对于一般用户 - 他们只能上传 4 张 .png、.jpg 类型的图像,每个管理员用户的文件大小最大为 10k - 他们可以上传 10 张任何文件类型的图像,每个文件大小最大为 100K

目前,我们让它在图像上传到服务器后检查服务器上的这些条件

寻找一种事先对客户本身进行检查的方法

谢谢

4

1 回答 1

1

在我看来,最直接的方法是破解 Image 插件的 JavaScript 代码。我发现没有正确记录的插件对话框的一个方面是该onOK()函数可以返回false以防止对话框本身被解除。您可以在其中触发验证以在验证失败时返回falseonOk()

Image 插件代码的人类可读版本中,您会发现onOk()从这个特定版本的第 361 行开始。

我会在文件中放置一个最大文件大小设置ckeditor/config.js,并检查它以进行验证。

至于获取文件的实际大小,我猜一旦用户在文件选择器中选择了一个文件,您就可以访问有关该文件的信息。我不知道CKEditorAPI 中是否有此功能,或者您是否必须利用其他一些 JS 库,但您需要以某种方式获取客户端所选文件的文件大小。onOk()您可以触发您的自定义代码来确定这一点,并根据config.js. 可能有一些易于找到的示例来说明一般如何使用配置。我认为获取本地文件大小可能是最棘手的部分。

我建议在上面链接的图像插件 JS 中四处寻找,从那里开始onOk()并从那里开始工作,看看你是否可以在那里找到任何有用/有用的东西。

CKEditor 第 4 版文档页面似乎比第3 版更好,但我不知道您使用的是哪个版本。我建议调查您的版本的 API 文档(请注意,我发现版本 3 文档在防止对话框解除时是不正确的;我必须CKEditor通过文档站点查看代码本身来弄清楚这一点,因为我在本地只有缩小的源文件)。

这个答案也可能会有所帮助;它专注于自定义文件对话框而不是标准对话框。

于 2013-05-28T18:51:01.950 回答