在客户端而不是在服务器上将PDF转换为字节

时间:2012-07-12 15:00:52

标签: javascript jquery asp.net-mvc

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

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

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

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

  2. upload方法的结果将一个字节数组返回给页面。

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

  4. 我的想法是第3步是此处所需的唯一网络流量。是否有任何方法可以在客户端上进行从PDF文档到字节数组的转换?聪明的JavaScript / jQuery会做什么?

1 个答案:

答案 0 :(得分:3)

下面:

  

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

将此逻辑更改为:

  

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