我是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 命令,保留原始文件名。我尝试运行相同的代码,将result.xls替换为 *(star),但它不起作用。
我有什么:
带有excel文件的tmp / xls文件夹
我想要的是什么:
将所有excel文件inna文件夹转换为.csv,保留其原始名称。 将不胜感激任何帮助。
UPDATE:为目录中的所有文件执行命令以创建/编辑脚本的最佳方法,在bash本身中操作目录中的所有文件更加容易。祝你好运。
答案 0 :(得分:1)
了解您如何解析扩展程序......
$ ext = pathinfo($ _FILES [' rawexcel'] [' name'] [$ i],PATHINFO_EXTENSION);
您可以查看pathinfo docs,然后了解如何获取没有路径或扩展名的文件名:
$filename = pathinfo($_FILES['rawexcel']['names'][$i], PATHINFO_FILENAME);
然后你可以使用它......
if ($ext == 'xlsx' ) {
exec("/usr/local/bin/cnvt /var/tmp/xls/$filename.xlsx /var/tmp/$filename.csv ");
} else if ($ext == 'xls' ) {
exec("/usr/local/bin/xls2csv -x /var/tmp/xls/$filename.xls -b WINDOWS-1251 -c /var/tmp/$filename.csv -a UTF-8");
}