Загрузка изображения с Zend_Service_Nirvanix - PullRequest
0 голосов
/ 15 июля 2009

Я не могу загрузить изображение, используя Zend_Service_Nirvanix. Это вообще возможно? У меня такое ощущение, что моя проблема связана с тем, что я не могу понять, как настроить UploadHost в службе передачи.

Любая помощь очень ценится! Мой крайний срок - 16 июля!

Вот мой код:

$nirvanix = new Zend_Service_Nirvanix(array('appKey'   => $key,
                                            'username' => $user,
                                            'password' => pass));

$NSImfs = $nirvanix->getService('IMFS');
$options = array('sizeBytes' => filesize($source));
$storageNode = $NSImfs->getStorageNode($options);

$NSTransfer = $nirvanix->getService('Transfer');
$options = array('uploadToken' => $storageNode->getStorageNode->UploadToken, 
                 'path' => $original, 
                 'fileData' => file_get_contents($source));
$result = $NSTransfer->uploadFile($options);

Вот ошибка, которую я продолжаю получать:

Zend_Service_Nirvanix_Exception: XML не может быть проанализирован из ответа: Ошибка сервера в приложении '/' ресурс не может быть найден. Описание: HTTP 404. Ресурс, который вы ищете для (или одна из его зависимостей) может были удалены, было его имя изменен или временно недоступен. Пожалуйста, просмотрите следующий URL и убедитесь, что это написано правильно.

Запрошенный URL: /ws/Transfer/UploadFile.ashx

в /Applications/MAMP/bin/php5/lib/php/Zend/Service/Nirvanix/Response.php по линии 119

Ответы [ 3 ]

0 голосов
/ 15 июля 2009

Существует коммерческий инструмент загрузки от Aurigma, который поддерживает загрузку файлов и изображений в Nirvanix. Вот ссылка (см. Раздел «Загрузка в Nirvanix») в раздел справки для проверки.

0 голосов
/ 15 июля 2009

Чтобы выполнить локальную загрузку (а не веб-загрузку через браузер), вам просто нужно вызвать метод putContents с передачей данных файлов.

Пример:

$nirvanix = new Zend_Service_Nirvanix(array('appKey'   => $key,
                                            'username' => $user,
                                            'password' => pass));

$NSImfs = $nirvanix->getService('IMFS');

$response = $NSImfs->putContents($destination_file_and_path, 
                                 file_get_contents($source_file));

if($response->ResponseCode != 0)
{
    echo 'Fail!';
}

Вы должны вызывать GetStorageNode, только если вы хотите сгенерировать токен, чтобы передать браузеру токен загрузки.

0 голосов
/ 15 июля 2009

Вы получаете 404?

  • Проверяли ли вы обновленную версию этой библиотеки?
  • Попробуйте зайти в библиотеку и изменить UploadFile.ashx на UploadFile.aspx. Я не думаю, что Ashx не является стандартным расширением.

Может быть, это все исправит.

...