Я пишу скрипт PHP, который проходит через таблицу и извлекает данные BLOB-объекта varbinary(max)
из каждой записи во внешний файл. Код работает отлично (я использовал практически один и тот же код для просмотра некоторых изображений), за исключением случаев, когда размер файла превышает 4096 байт - данные усекаются ровно с 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>");
}
}
?>
OUTPUT
Попытка ... projectPhotos / docs / file1.pdf
Готово (4096)
Попытка ... projectPhotos / docs / file2.zip Готово (4096)
Пытаюсь ...
projectPhotos / docsv3.pdf Готово (4096)
и т.д .. * * 1023