我的asp.Net MVC应用需要存储一个字节数组,表示数据库中每条记录的用户选择的PDF文件。 SQL列是Varbinary(最大值)。
我正在考虑的方法是使用Telerik(最棒的)KendoUI上传控件将选定的PDF异步上传到控制器方法。控制器方法使用System.IO命名空间中的类将PDF转换为字节,然后在Json结果中返回该字节数组。我在页面上有一个等待此结果的事件处理程序,然后将该字节数组写入隐藏的输入,然后当用户单击保存按钮时将其保存到记录的其余部分,将表单发布回服务器
我的直觉是,我在这里有一些令人讨厌的低效率......
将pdf发送到服务器(可能已经是上传控件创建的某种形式的字节数组)。
upload方法的结果将一个字节数组返回给页面。
然后页面提交表单回发,其中包含将保存到数据库的字节数组。
我的想法是第3步是此处所需的唯一网络流量。是否有任何方法可以在客户端上进行从PDF文档到字节数组的转换?聪明的JavaScript / jQuery会做什么?
答案 0 :(得分:3)
下面:
控制器方法使用中的类将PDF转换为字节 System.IO命名空间,我在Json结果中返回该字节数组。一世 在页面上有一个等待此结果的事件处理程序,然后 将该字节数组写入隐藏的输入,然后保存 当用户点击保存按钮发布时,记录的其余部分 表格返回服务器。
将此逻辑更改为:
控制器方法使用中的类将PDF转换为字节 System.IO命名空间,并将其保存到数据库并返回Json结果。 指示此操作的成功或失败。没有更多隐藏的领域,没有 更多字节数组。当客户端提交表单时,该文件不应该 更长的时间被发送到服务器,因为它已经被发送和存储 数据库。因此在处理表单的控制器操作中 提交我将其他表单字段与文件中的文件相关联 数据库记录。