zoukankan      html  css  js  c++  java
  • 使用GDAL获取网络数据

    GDAL中提供了一个访问网络数据的接口,具体的帮助文档可以访问这里http://gdal.org/cpl__http_8h.html)。不过前提是GDAL需要依赖一个第三方的开源库libcurllibcurl主要功能就是用不同的协议连接和沟通不同的服务器~也就是相当封装了的sockPHP 支持libcurl(允许你用不同的协议连接和沟通不同的服务器)。, libcurl当前支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传(当然你也可以使用PHP的ftp扩展), HTTP基本表单上传,代理,cookies,和用户认证。 具体可以访问libcurl的wikipedia,链接在这里

    好了,下面大概说明一下使用方法,首先使用CPLHTTPEnabled()函数来进行检测GDAL是否已经有libcurl来进行支持,然后使用下面的代码来获取URL返回的信息。(下面的地址是我的博客的头像图片URL)。

    CPLHTTPResult *pRest = CPLHTTPFetch ("http://avatar.csdn.net/7/0/7/1_liminlu0314.jpg", NULL);

    然后判断pRest释放为NULL,如果不为NULL说明获取信息成功,已经将获取的信息存储在pRest中。之后从pRest中取出内容就可以了。下面是我封装的一个小函数,可以用来获取网络的图片或者文件,然后存储到本地。

    bool SaveUrl2File(const char* pszUrl, const char* pszFileName)
    {
    	if( CPLHTTPEnabled() != TRUE)
    		return false;
    
    	CPLHTTPResult *pRest = CPLHTTPFetch (pszUrl, NULL);
    	if (pRest == NULL)
    		return false;
    
    	FILE *pFile = fopen(pszFileName, "wb");
    	if (pFile == NULL)
    		return false;
    
    	fwrite( pRest->pabyData, sizeof( GByte ), pRest->nDataLen, pFile );
    	fclose(pFile);
    
    	CPLHTTPDestroyResult(pRest);
    	CPLHTTPCleanup();
    
    	return true;
    }

    使用很简单,比如使用这个下载一个图片,或者一个mp3,就可以使用下面的代码来进行。

    bool bIsSuccess = SaveUrl2File("http://avatar.csdn.net/7/0/7/1_liminlu0314.jpg", "C:\\photo.jpg");
    bIsSuccess = SaveUrl2File("http://music.charlottedann.com/songs/Safe%20And%20Sound.mp3
    ", " Safe & Sound Taylor Swift mp3");

    上面一个是下载我的CSDN的头像,一个是下载《饥饿游戏》的片尾曲《Safe and  Sound》,PS,很好听,推荐一下,呵呵。

  • 相关阅读:
    asp.net各种视频格式转换为flv格式代码
    万能播放器代码
    FlashPaper安装及使用方法
    falsh播放器代码(播放器收集)
    正则表达式
    Windows API介绍及用法:CreateFileMapping和MapViewOfFile函数(进程间数据共享)
    Win7 魔兽争霸打开时最小化
    CSV文件格式
    Excel
    asp.net先于iis安装导致iis不能解析aspx的问题(Failed to access IIS metabase,IISメタベースにアクセスできませんでした)
  • 原文地址:https://www.cnblogs.com/xiaowangba/p/6314006.html
Copyright © 2011-2022 走看看