如何使用php从MS SQL保存二进制数据

时间:2017-12-11 20:21:11

标签: php sql-server blob

大家好日子。从MS SQL下载数据时遇到一些问题。 当我尝试以标准方式从varbinary字段下载文件时,我在浏览器中获取字符串,如: string(26567)504B0304400600080002100F021EC .... 当我使用函数{{1然后我从查询中获得的#main.pl use Schedular( \%CONFIG, do "default.pl" ); #spawn new process for each schedule Schedular::run_schedulue("some_schedule"); Schedular::run_schedulue("some_other_schedule"); #Schedular.pm package Schedular; our %schedules = undef; our %config = undef; sub import{ %config= shift @_; %schedules = shift @_; } sub run_schedule{ #Run each event in schedule } sub do_something{ print("Hello World"); } #default.pl ( "some_schedule"=>[ sub { #Event Schedular::do_something(); }, sub { #Event 2 } ], "some_other_schedule"=>[ sub { #Event 3 }, ] ) 1; 数据只是将其写成文档中的字符串或PDF'文件,我无法打开它。 这个代码我用的。 [code sourse]

当我尝试在我的本地网络服务器上解决这个问题时( OpenServer with MySQL和php 5.6 )我得到了一个成功的结果,来自测试blob字段的所有文件都是下载正确,之后我可以在他们的程序中打开它们。 如果我在浏览器中写fopen,我会看到�PNGIHDRA)y��sRGB���gAMA

但如果我尝试在Windows操作系统上重复此操作( IIS 7 + MS SQL 2008 R2 + php 5.6.30 ),我会收到一个文件( for例如:text.doc )具有正确的大小(例如:29Kb )但在850页面内有一个长字符串。如果我在浏览器中写fwrite,我会看到字符串(49370)504B0304400600080002100F021EC ..

也许有人遇到过这个问题?

0 个答案:

没有答案