您的位置:首页 > 其它

loadrunner 根据图片url下载图片并重命名。

2014-07-17 16:47 295 查看
老板要我从一个网站上把图片都拔下来,想了想,拿loadrunner写了一个方法,以后只要有URL都能下载图片下来了。

int save_picture(char *url){                 //url,图片的url地址
long pic;                            //文件句柄,loadrunner不支持file类型,所以可以用int或者long代替
int flen;                            //文件大小,单位Byte
char urlad[200]="URL=";              //和url组合成web_url函数中需要的参数
char *last_url;                      //提取的url最后部分,为文件名服务
char *name;                          //真正的文件名,last_url去掉第一个字符后就是name
char local_url[200]="E:\\picture\\"; //本地存储地址

strcat(urlad,url);                    //把urlad和url拼合成web_url中需要的字符串,存储在urlad中
last_url=(char *)strrchr(url,'/');    //获取最有一个/后面的字符串,用于文件名
name=++last_url;                      //文件名等于上面的字符串去掉第一个字符后剩下的部分

lr_output_message("*****名字是%s",name);

strcat(local_url,name);               //拼成本地文件名

web_set_max_html_param_len("10000000"); //设置要抓取的html参数的大小上限,这里是10M

web_reg_save_param("picString",             //抓取body中的所有数据,存在参数picString中,这就是图片的二进制数据了。
"LB=",
"RB=",
"Search=BODY",
LAST );

web_url("6608526677817689391.jpg",       //请求图片
//"URL=http://imglf0.ph.126.net/Jz2miia0OSt4EB6sLGVzag==/6608526677817689391.jpg",
urlad,
"Resource=1",
"RecContentType=image/jpeg",
"Referer=http://www.lofter.com/wall?act=qbview_20130930_02",
"Snapshot=t217.inf",
LAST);

flen = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);   //获取真正取得的大小
//lr_output_message("文件长度是%d",flen);
if(flen>0){
if((pic = fopen(local_url, "wb")) == NULL)
{
lr_output_message("打开文件失败!");
return -1;
}
fwrite(lr_eval_string("{picString}"), flen, 1, pic);    //将取到的值写入字符串
//	fprintf(pic,lr_eval_string("{picString}"));
fclose(pic);                                             //关闭文件,搞定了,哈哈<span style="white-space:pre">
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: