我似乎无法使用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行
答案 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。