使用Zend_Service_Nirvanix上传图像

时间:2009-07-15 05:33:46

标签: zend-framework upload

我似乎无法使用Zend_Service_Nirvanix上传图像。它甚至可能吗? 我觉得我的问题与无法弄清楚如何在Transfer Service上设置UploadHost有关。

非常感谢任何帮助!我的截止日期是7月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.您正在寻找的资源   for(或其中一个依赖项)可以   已被删除,有它的名字   改变了,或者是暂时的   不可用。请查看   关注URL并确保它是   拼写正确。

     

请求的网址:   /ws/Transfer/UploadFile.ashx

     

在   /Applications/MAMP/bin/php5/lib/php/Zend/Service/Nirvanix/Response.php   在第119行

3 个答案:

答案 0 :(得分:0)

你得到了404?

  • 您是否检查过该库的更新版本?
  • 尝试进入图书馆并将UploadFile.ashx更改为UploadFile.aspx。我不认为ashx不是标准扩展。

也许这会解决它。

答案 1 :(得分:0)

Aurigma有一个商业上传工具,支持将文件和图像上传到Nirvanix。这是link(请参阅上传到Nirvanix部分)到要检查的帮助主题。

答案 2 :(得分:0)

要进行本地上传(而不是通过浏览器上传网页),您只需调用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。