zoukankan      html  css  js  c++  java
  • 使用LR编写下载类脚本

    如何下载并保存文件到本地,实现文件下载的脚本制作。以下是本人测试某系统总结整理的脚本,仅供参考。

    #include "lrs.h"
    Action()
    {
    // 示例一:
    
    //第一种创建随机数的方法,此种方案是我们采用的
        int flen;             //定义一个整型变量保存获得文件的大小
        long filedes;         //保存文件句柄
        char file[256]="";  //保存文件路径及文件名
        char * strNumber;     //定义一个随机数
        strNumber=lr_eval_string("{RandomNum}"); 获取1~100个随机数
        strcat(file,"D:\DownLoad\"); //将路径保存到file变量中
        strcat(file,strNumber);        //将获得的随机数拼接在file变量之后 
        strcat(file,".zip");           //将下载的文件后缀名.rar拼接在file变量之后
     
    //第二种创建随机数的方法
        int flen;  //文件大小
        long filedes;  //响应数据内容大小
        char file[256]=""; //保存文件路径及文件名 
        int rNum;         //定义一个随机数                                       
        char S[8];       //数字由int转为char
        srand(time(NULL)); //初始化
        rNum= rand() % 100; //获得0~100的随机数
        sprintf(S,"%d",rNum);//int 转换为 char
        strcat(file,"D:\DownLoad\");//将d:	est路径赋值给file
        strcat(file,S);//在file后面加上随机数
        strcat(file,".zip");  //输出的文件格式
           
    
         web_set_max_html_param_len("20000");//设置参数的最大长度,注意该值必须大于文件的大小
         web_reg_save_param("Download","LB=","RB=","SEARCH=BODY", LAST);
         lr_start_transaction("下载"); 
    
         web_url("DownLoadBW","URL=http://IP:port/bsreport/download.action?fileName=/report/workdir/reportfile/20141231.txt.zip",
          "Resource=1", 
          LAST ); 
    
         flen = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);//获取响应中的文件长度
    
      if(flen > 0)   //实际 4KB 的压缩文件 
         {
         lr_end_transaction("下载",LR_PASS);
        if((filedes = fopen(file, "wb")) == NULL)  //以写方式打开文件
        {
         lr_output_message("Open File Failed!");
         return -1;
        }
        fwrite(lr_eval_string("{Download}"), flen, 1, filedes); //写入文件内容
        fclose(filedes);  //关闭文件  
         }else{
         lr_end_transaction("下载",LR_FAIL); 
       
         }
    
      /**
       此种方法是把下载的文件下载到D:\DownLoad目录下并命名为 C003_15087_01.txt.zip
       测试结果证明:在并发压力下,多个进程对同一个文件做保存、打开和替换,就会出现排队等待现象,
       大量占用执行机的内存资源。可能导致内存溢出。
      **/
     
    
    //示例二:
    
        int flen;  //定义一个整型变量保存获得文件的大小
        long filedes;  //保存文件句柄
        char * file = "D:\DownLoad\C003_15087_01.txt.zip"; //保存文件路径及文件名
        web_set_max_html_param_len("60000");//设置参数的最大长度,注意该值必须大于文件的大小
        web_reg_save_param("Download","LB=","RB=","SEARCH=BODY", LAST);
        lr_start_transaction("产品下载"); 
        web_url("DownLoadBW",  
                "URL=http://IP:port/bsreport/download.action?fileName=/report/workdir/reportfile/20141231.txt.zip",
       "Resource=1", 
        LAST ); 
           
         flen = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);//获取响应中的文件长度
    
         /***下面的方式是如果获取到的文件大小大于0,则判断交易成功,然后再去写文件,否则直接判断交易失败。
         
        if(flen > 0)   //实际 4KB 的压缩文件 
         {
         lr_end_transaction("下载",LR_PASS);
        if((filedes = fopen(file, "wb")) == NULL)  //以写方式打开文件
        {
         lr_output_message("Open File Failed!");
         return -1;
        }
        fwrite(lr_eval_string("{Download}"), flen, 1, filedes); //写入文件内容
        fclose(filedes);  //关闭文件
         }else{
         lr_end_transaction("下载",LR_FAIL); 
         }
        ***/ 
       /***下面的方式是如果写文件成功就判断交易成功,否则交易失败
       if(flen > 0)   
          {
            if((filedes = fopen(file, "wb")) == NULL)
            {
                lr_output_message("Open File Failed!");
             lr_end_transaction("下载",LR_FAIL);
                return -1;
            }
            fwrite(lr_eval_string("{Download}"), flen, 1, filedes);//写入文件内容
            fclose(filedes);  //关闭文件
        lr_end_transaction("下载",LR_PASS);
        }
        ***/
    
    
    /** 
       此种方法是只从服务器上获取下载的文件资源路径即可,不把资源下载到本地。
       测试结果证明:在并发压力下,大量占用执行机的内存资源。压力达到一定程度会导致内存溢出。
    **/
    
     
    
    //示例三:
    
         long flen;
         web_set_max_html_param_len("50000");//设置参数的最大长度,注意该值必须大于文件的大小
         web_reg_save_param("Download","LB=","RB=","SEARCH=BODY", LAST);
         lr_start_transaction("下载"); 
        web_url("DownLoadBW", 
                 "URL=http://IP:port/bsreport/download.action?fileName=/report/workdir/reportfile/20141231.txt.zip",
                 "Resource=1", 
                   LAST ); 
           flen = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);//获取响应中的文件长度
        if(flen > 0)   //实际 4KB 的压缩文件 
         {
         lr_end_transaction("下载",LR_PASS);  
         }else{
         lr_end_transaction("下载",LR_FAIL); 
         }
    
    return 0;
      }
  • 相关阅读:
    Debian下通过SSHFS/SHFS挂载远程文件
    Linux下如何查看CPU信息, 包括位数和多核信息
    Nexus One USB in Ubuntu 9.10
    育儿书籍阅读顺序的建议
    Android 2.1 中 JNI 层 camera 的应用
    Android开发工具使用之adb
    改变父母的十本书
    在Ubuntu下使用adb
    改变父母的十本书之《童年的秘密》
    Ubuntu Lucid(10.04)上安装Google Android SDK环境
  • 原文地址:https://www.cnblogs.com/ssj0723/p/9581610.html
Copyright © 2011-2022 走看看