• lr文件下载脚本(文件参数化重命名)


     

     
    下载文件时 文件名相同会被覆盖:
    以下是两种重命名文件的方法,妈蛋的函数写错了,让我整了一早上:
    第一种 利用strcpy函数,随机数参数化文件名会使文件每次生成的文件名 随机带上不同的数字
    strcpy(filepath,lr_eval_string("D://数据导出{num}.doc"));
    第二种比较复杂一点
    char filename1[50]; 
    char filename[50];
    char filepath[50]; 
    //生成不重复的随机数,
    int i=rand()%10; 
    srand(time(NULL)); 
    //生成1-10之间的随机数,这块注意()不能漏写
    lr_save_datetime("%Y%m%d%H%M%S",DATE_NOW,"now"); 
    //这块注意时间格式以及是否加双引号
    sprintf(filename,"%s%d.csv",
    lr_eval_string("{now}"),i); 
    lr_save_string(filename,"filename1"); 
    strcpy(filepath,"D:\Users\wufangfang\Desktop\app\"); 
    strcat(filepath,lr_eval_string("{filename1}")); 
    lr_message("%s",filepath
     
    ==============================黄金分割线===============================

    //定义一个整型变量保存获得文件的大小
    int flen;
    //保存文件句柄
    long filedes;
    /*
    char filename1[50]; 

    char filename[50]; 

    char filepath[50]; 
    //生成不重复的随机数,
    int i=rand()%10; 
    srand(time(NULL)); 
    //生成1-10之间的随机数,这块注意()不能漏写
    lr_save_datetime("%Y%m%d%H%M%S",DATE_NOW,"now"); 

    //这块注意时间格式以及是否加双引号
    sprintf(filename,"%s%d.csv",
    lr_eval_string("{now}"),i); 

    lr_save_string(filename,"filename1"); 

    strcpy(filepath,"D:\Users\wufangfang\Desktop\app\"); 
    strcat(filepath,lr_eval_string("{filename1}")); 
    lr_message("%s",filepath);
    */
    //设置参数的最大长度,注意该值必须大于文件的大小

    web_set_max_html_param_len("20000");


    //使用关联函数获取下载文件的内容,在这里不定义左右边界,获得服务器响应的所有内容

    web_reg_save_param("fcontent",
    "LB=",
    "RB=",
    "SEARCH=BODY",
    LAST);





    /*下载帮助文件*/



    lr_start_transaction("导出文件");


    //发送导出文件的请求

    web_url("DownLoadServlet",
    "Resource=1",
    "RecContentType=application/x-msdownload",
    "Referer=",
    "Snapshot=t41.inf",
    LAST);

    lr_convert_string_encoding(lr_eval_string("{fcontent}"),LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"str");

    //获取响应中的文件长度
    flen = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);


    strcpy(filepath,lr_eval_string("D://数据导出{num}.doc"));
    if(flen > 0)
    {

    //以写方式打开文件

    if((filedes = fopen(filepath, "wb")) == NULL)

    {

    lr_output_message("打开文件失败!");

    return -1;

    }

    //写入文件内容

    fwrite(lr_eval_string("{str}"), flen, 1, filedes);

    //关闭文件

    fclose(filedes);

    }

    lr_end_transaction("导出文件",LR_AUTO);

    return 0;
    }
  • 相关阅读:
    面向对象
    模块
    第四十课、前置操作符和后置操作符------------------狄泰软件学院
    uva -- 10766
    poj -- 3468
    poj --3264
    cstring 的重载
    hihocode ---1032
    省赛总结
    13周总结
  • 原文地址:https://www.cnblogs.com/scios/p/6245201.html
Copyright © 2020-2023  润新知