【发布时间】:2017-08-10 14:30:43
【问题描述】:
我是 Freebsd/nginx 的新手,所以类似的 QA 对我没有帮助;( 我正在运行代码:
$ext = pathinfo ($_FILES['rawexcel']['name'][$i], PATHINFO_EXTENSION);
//get extension of file, run different converters depending on extension
if ($ext == 'xlsx' ) { exec("/usr/local/bin/cnvt /var/tmp/xls/result.xlsx /var/tmp/result.csv "); }
else
if ($ext == 'xls' ) { exec("/usr/local/bin/xls2csv -x /var/tmp/xls/result.xls* -b WINDOWS-1251 -c /var/tmp/result.csv -a UTF-8"); }
/var/tmp/xls/
当我的文件名是常量时(result.xls 然后转换为 result.csv)并且我正在一个一个地处理文件; cnvt 和 xls2csv 是转换器。 现在我有 ajax 上传并希望对文件夹中的所有文件执行 exec 命令,保留原始文件名。我尝试用 *(star) 替换 result.xls 来运行相同的代码,但它不起作用。
我有什么:
带有 excel 文件的文件夹 tmp/xls
我想要什么:
将文件夹中的所有 excel 文件转换为 .csv,保留其原始名称。 将不胜感激任何帮助。
更新:对目录中的所有文件执行命令以创建/编辑脚本的最佳方法是,在 bash 本身中对目录中的所有文件进行操作要容易得多。祝你好运。
【问题讨论】:
-
你把
*放在哪里了?大概在上面的代码中你的意思是/var/tmp/xls/*.xls(而不是/var/tmp/xls/result.xls*?) -
@Andy yes, exec("/usr/local/bin/cnvt /var/tmp/xls/*.xlsx /var/tmp/");没用
-
请说明
$i的来源。