http协议---上传文件:
前提:把要上传的文件放在存放脚本的文件夹里面否需要写文件上传地址;
可以在页面上操作一次,然后使用抓包工具或者F12看网络交互的请求和响应得知URL地址、Referer及参数;
web_submit_data("fileupload",
"Action=要上传的URL地址",
"Method=POST",
"EncType=multipart/form-data",
"ReContentType=text/html",
"Referer=依赖的地址",
"Mode=HTML",
ITEMDATA,
"Name=参数名","Value=参数值",ENDITEM,
……
"Name=files[]","Value=上传文件名称",,"File=Yes",ENDITEM,
LAST);
http协议---下载文件:
大概思路:先使用抓包工具或者F12看网络交互的请求和响应,一般是get请求;
先写出下载的请求函数;
使用关联函数获取响应内容;
把内容写入文档中;
/**
*开始编写脚本
*/
Action()
{
int flen; //定义一个整型变量,作用保存获得文件的大小
long fileds; //作用:保存文件的句柄
char filepath[256]="\0"; //作用:保存文件路径及文件名
char chNumber[256]; //作用:参数化文件名
…… //省略中间录制或者编写的请求及其他,如果省略部分中响应含有下载文件的文件名,可以使用关联函数取到,下文会用,没有则在下载的响应中获取
//开始下载
web_set_max_html_param_len("400000000"); //设置页面接收的最大字,该数值要根据下载文件内容的大小来设置
web_reg_save_param("filecontent","LB=","RB=","SEARCH=BODY",LAST); //使用关联函数,不设置左右边界,获取下载内容
web_reg_save_param("filename","LB=文件名称左边界","RB=文件名称右边界",“SEARCH=ALL”,LAST); //使用关联函数获取文件名称
web_url("downLoadWord",
"URL=下载地址",
"TargetFrame=",
"Resource=0",
"ReContentType=写抓包Content-Type中的类型",
"Referer=抓包中头文件中找",
"Mode=HTML",
LAST);
lr_output_message("文件内容为:%s",lr_eval_string("{filecontent}")); //调试脚本时,打印文件内容,看是否有返回内容
strcat(chNumer,lr_eval_string("{P_Random}")); //strcat是拼接字符串,P_Random是参数化,为了使下载后的文件名不重复
strcat(filepath,"C:\\"); //C:\\这个位置可以存放自己想把文件放在本地的那个位置
strcat(filepath,lr_eval_string("{filename}")); //文件名称,使用关联函数关联回来的那个参数,追加到filepath中
strcat(filepath,".doc"); //追加文档后缀
lr_output_message("文件存放路径是:%s",filepath); //打印出文件路径
flen = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE); //获取响应中的文件长度
lr_output_message(“文件长度为:%d”,flen);//打印出文件长度
if(flen > 0)
{
if((fileds=fopen(filepath,"wb")) == NULL) //以写的方式打开文件
{
lr_output_message("文件操作失败");
return -1;
}else{
fwrite(lr_eval_string("{filepath}"),flen,1,fileds); //写入文件内容
fclose(fileds);//关闭文件
}
}
return 0;
}