Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: блокировка файла
Форумы портала PHP.SU » » Работа с файловой системой и файлами » блокировка файла

Страниц (1): [1]
 

1. Panoptik - 05 Августа, 2013 - 12:33:54 - перейти к сообщению
есть библиотека которая создает картинку неким методом и возвращает путь к вновь созданному файлу
PHP:
скопировать код в буфер обмена
  1. $fileName = $lib->createPath($someArguments); //get file path

далее другой библиотекой загружается этот файл на CDN bucket amazon через curl
так вот там это файл устанавливается с помощью такой конструкции упрощенно
PHP:
скопировать код в буфер обмена
  1.  
  2. $fp = fopen($fileName, 'rb');
  3. curl_setopt($curl, CURLOPT_INFILE, $fp);
  4.  

проблема в том что если файл существует, то есть если я одним запуском скрипта запущу первую часть создав файл
на второй запуск запускаю курл - то всё отлично работает

но если я делаю эти действия последовательно, то возникает странная ошибка curl, RequestTimeout

проблему решил вот этим кодом
то есть переключаю указатель файла, открываю совершенно иной файл
и после этого мой файл становится доступным для курл.

PHP:
скопировать код в буфер обмена
  1. $fp2 = fopen($fileName .'_', 'a');
  2.                 fclose($fp2);
  3.                 unlink($fileName .'_');




вопрос: чем можно объяснить такое поведение? незакрытый файловый дескриптор после imageJPEG ? или какие-то другие особенности?
(Добавление)
up

 

Powered by ExBB FM 1.0 RC1