Господа. Всем добрый вечер.
Решил поделиться своей модификацией ентого модуля.
Дело в том, что при интеграции с моим складом и классом365, может возникнуть проблема при загрузке файлов.
связано это с тем, что эти сервисы не совсем корректно используют протоколы передачи. Например Класс гонет данные методом Put, а не постом.
как следствие, появляется ошибка при передаче.
поэтому я слегка заколхозил функцию
public function modeFile() {}
который находится в admin/controller/module/exchange1c.php
вместо
// Получаем данные
$data = file_get_contents("php://input");
if ($data !== false) {
if ($fp = fopen($uplod_file, "wb")) {
$result = fwrite($fp, $data);
if ($result === strlen($data)) {
echo "success\n";
chmod($uplod_file , 0777);
//echo "success\n";
}
else {
echo "failure\n";
}
}
else {
echo "failure\n";
echo "Can not open file: $uplod_file\n";
echo $cache;
}
}
else {
echo "failure\n";
echo "No data file\n";
}
прикрутил
// Получаем данные
// _POST
if (!empty($_POST)){
$content = file_get_contents('php://input');
file_put_contents($uplod_file, $content);
}
//_PUT
if($_SERVER['REQUEST_METHOD'] == 'PUT') {
/* Открываем файл на чтение */
$putdata = fopen("php://input", "r");
$fp = fopen($uplod_file, "w");
/* Читаем 1 KB данных за один раз и пишем в файл */
while ($data = fread($putdata, 1024))
fwrite($fp, $data);
/* Закрываем потоки */
fclose($fp);
fclose($putdata);
}
// проверяем на наличие файла
if (file_exists ($uplod_file) && filesize ($uplod_file) > 0){
echo "success\n";
}
else
{
echo "failure\n";
echo "Error saving file \n";
}
после данной модификации модуль начал работать с моим складом
Понимаю, что там минимум проверок, но думаю кому-нить будет полезно