zoukankan      html  css  js  c++  java
  • 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;
    }
  • 相关阅读:
    TCP协议简单套接字通信 客户端
    TCP协议简单套接字通信 服务端
    java课程作业--动手动脑
    Java方法课程作业1,2,3
    java猜数字(实验任务五)
    课程作业02(关于Java的几点讨论)
    java多个int型数据累加求和
    java基本登录界面
    大道至简第一章观后感——java伪代码
    《大道至简—软件编程者的思想》观后感
  • 原文地址:https://www.cnblogs.com/zhuzhubaoya/p/5853849.html
Copyright © 2011-2022 走看看