Запихнуть большой файл в LONGBLOB

mbyte

Новичок
Запихнуть большой файл в LONGBLOB

Не могу запихнуть файла 2 метра в LONGBLOB.

В итоге поле равно 0 байт.

делаю вот так:

PHP:
$fw=fopen($file,"rb");
while (!feof($fw)) {
	$d=fread($fw,1024);
	$query = "UPDATE `".$options_table."` SET `zip` = CONCAT(zip, '".mysql_escape_string($d)."') WHERE `id` = ".$insid.";";
	$wpdb->query($query);
}
или вот так:

PHP:
$wpdb->query("UPDATE `".$options_table."` SET `zip`=LOAD_FILE('".$wpdb->escape($file)."') WHERE `id` = '".$insid."' LIMIT 1 ;");
Причем если в первом случае в цикл добавить print $d; , то на экран выводится около 500-700 кб. И они же записываются в базу.

Как бы сделать без вывода данных на экран нормальную загрузку больших файлов?

Предупреждая вопросы, типа "а нафига в базу пихать?":
Зип потом отдается определенному пользователю. Хранить его в файле - значит дать возможность незареганому юзеру скачать зип. Плюс возможности и времени переписывать весь код для работы с файлами нет. Так что файлы отпадают.
 

Vallar_ultra

Любитель выпить :)
mbyte

0) В ПОИСК! Такие темы тут уже были.

1) у тя при 10 меговом файле скока апдейтов будет???? посчитай!


2) >Хранить его в файле - значит дать возможность незареганому юзеру скачать зип

Блин, думать головой теперь стало не модно? Закрой директорию для апача и выдергивай файлы только через какой-нить скрипт
 

Garret

Кто здесь?
Зачем же так извращатся. У тебя наверно мускуль дохнет от такого кол-ва запросов. Ты не можешь прочитать сразу весь файл?
 

mbyte

Новичок
Автор оригинала: Vallar_ultra
mbyte

0) В ПОИСК! Такие темы тут уже были.

1) у тя при 10 меговом файле скока апдейтов будет???? посчитай!


2) >Хранить его в файле - значит дать возможность незареганому юзеру скачать зип

Блин, думать головой теперь стало не модно? Закрой директорию для апача и выдергивай файлы только через какой-нить скрипт
0) В поиске на все подобные вопросы отвечают так же, как и Вы, тоесть не по существу вопроса.
1) Около 1600 выдавало. Но это не важно, потому что я описал и другой способ, который тоже не работает (FILE_LOAD).
2) Думать головой теперь модно, как не странно, если бы можно было поставить в апаче на папку Deny я бы поставил и не думал об этом. Не такие кругом дураки, как Вам кажется. На данный момент единственный способ сделать антилич - сделать его через базу. Предвидя совет "поменяйте хостинг" скажу, что совет этот не актуален.

Кто-нибудь может просто дать решение, а не искать левые пути решения другой задачи?
 

Vallar_ultra

Любитель выпить :)
mbyte
>если бы можно было поставить в апаче на папку Deny я бы поставил и не думал об этом

Если подумать - все замечательно найдется.
chown / chmod + htaccess.
Отдавать через скрипт.

>Около 1600 выдавало. Но это не важно, потому что я описал и другой способ, который тоже не работает (FILE_LOAD)

$wpdb - экземпляр какого класса? я понятия не имею как там реализаваны методы


>На данный момент единственный способ сделать антилич - сделать его через базу
Бред.

>В поиске на все подобные вопросы отвечают так же, как и Вы, тоесть не по существу вопроса.

Плодить велосипеды с гвоздями в седение, без руля и с квадратными колесами даже минздрав не рекомендует.

по существу вопроса:
Еслы вы решили поспорить с минздравом в данном вопросе - http://www.codenet.ru/webmast/php/Read-Binary.php
 

mbyte

Новичок
Скажу так, мой MySQL выдерживает количество запросов. При последующем дописывании в это поле, поле все равно сбрасывается в NULL.

$wpdb->query(); аналогичен mysql_query();

по поводу приведенной ссылки - именно оттуда я и брал приведенные конструкции.
 

Vallar_ultra

Любитель выпить :)
>Скажу так, мой MySQL выдерживает количество запросов
Блин, этим чтоли будет пользоваться не более одного человека за раз?

по существу вопроса:
Еслы вы решили попрежнему спорить с минздравом в данном вопросе - то скажите, какого размера у вас это поле. это раз. второе - пошагово посмотри на каком апдейте все рушится.
 
Сверху