我正在编写一个 PHP 脚本,它遍历一个表并将varbinary(max)
每条记录中的 blob 数据提取到一个外部文件中。代码运行良好(我使用几乎相同的代码浏览一些图像),除非文件超过 4096b - 数据在 4096 处被截断。
我已经修改了、 和的值mssql.textlimit
,但没有成功。mssql.textsize
odbc.defaultlrl
我在这里错过了什么吗?
<?php
ini_set("mssql.textlimit" , "2147483647");
ini_set("mssql.textsize" , "2147483647");
ini_set("odbc.defaultlrl", "0");
include_once('common.php'); //Connection to DB takes place here.
$id=$_REQUEST['i'];
$q = odbc_exec($connect, "Select id,filename,documentBin from Projectdocuments where id = $id");
if (odbc_fetch_row($q)){
echo "Trying $filename ... ";
$fileName="projectPhotos/docs/".odbc_result($q,"filename");
if (file_exists($fileName)){
unlink($fileName);
}
if($fh = fopen($fileName, "wb")) {
$binData=odbc_result($q,"documentBin");
fwrite($fh, $binData) ;
fclose($fh);
$size = filesize($fileName);
echo ("$fileName<br />Done ($size)<br><br>");
}else {
echo ("$fileName Failed<br>");
}
}
?>
输出
正在尝试... projectPhotos/docs/file1.pdf 完成 (4096)
正在尝试... projectPhotos/docs/file2.zip 完成 (4096)
正在尝试... projectPhotos/docsv3.pdf 完成 (4096)
ETC..