0

我的 asp.Net MVC 应用程序需要存储一个字节数组,该数组表示数据库中每条记录的用户选择的 PDF 文件。SQL 列是 Varbinary(max)。

我正在考虑的方法是使用 Telerik 的(最棒的)KendoUI Upload 控件将选定的 PDF 异步上传到控制器方法。控制器方法使用 System.IO 命名空间中的类将 PDF 转换为字节,然后我在 Json 结果中返回该字节数组。我在页面上有一个等待此结果的事件处理程序,然后将该字节数组写入隐藏输入,然后当用户单击保存按钮时将其与记录的其余部分一起保存,将表单发送回服务器.

我的直觉是我在这里有一些令人讨厌的低效率......

  1. pdf 被发送到服务器(可能已经在上传控件创建的某种形式的字节数组中)。

  2. 上传方法的结果返回一个字节数组回页面。

  3. 然后页面提交表单回发,其中包含将保存到数据库的字节数组。

我的想法是第 3 步是这里唯一需要的网络流量。有没有什么方法可以在客户端上进行从 PDF 文档到字节数组的转换?什么聪明的 JavaScript/jQuery 会做到这一点?

4

1 回答 1

3

这里:

控制器方法使用 System.IO 命名空间中的类将 PDF 转换为字节,然后我在 Json 结果中返回该字节数组。我在页面上有一个等待此结果的事件处理程序,然后将该字节数组写入隐藏输入,然后当用户单击保存按钮时将其与记录的其余部分一起保存,将表单发送回服务器.

将此逻辑更改为:

控制器方法使用 System.IO 命名空间中的类将 PDF 转换为字节,并将其保存到数据库并返回 Json 结果。指示此操作的成功或失败。没有更多的隐藏字段,没有更多的字节数组。当客户端提交表单时,文件不应再发送到服务器,因为它已经发送并存储在数据库中。因此,在将处理表单提交的控制器操作中,我将其他表单字段与数据库记录中的文件相关联。

于 2012-07-12T15:04:51.600 回答