下载文件时 文件名相同会被覆盖:
以下是两种重命名文件的方法,妈蛋的函数写错了,让我整了一早上:
第一种 利用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
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);
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_set_max_html_param_len("20000");
//使用关联函数获取下载文件的内容,在这里不定义左右边界,获得服务器响应的所有内容
web_reg_save_param("fcontent",
web_reg_save_param("fcontent",
"LB=",
"RB=",
"SEARCH=BODY",
LAST);
/*下载帮助文件*/
lr_start_transaction("导出文件");
/*下载帮助文件*/
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)
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);
//以写方式打开文件
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;
}
}