我是 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 and xls2csv是转换器。
现在我有ajax上传并想要执行exec命令用于文件夹中的所有文件,保留原始文件名。我尝试运行相同的代码,并将 result.xls 替换为*(star)但它不起作用。
我拥有的:
包含 excel 文件的文件夹 tmp/xls
我想要的是:
将文件夹中的所有 Excel 文件转换为 .csv,保留其原始名称。
将不胜感激任何帮助。
UPDATE: 对目录中的所有文件执行命令以创建/编辑脚本的最佳方法是,在 bash 本身中更容易对目录中的所有文件进行操作。祝你好运。
看看你如何提取扩展名...
$ext = pathinfo($_FILES['rawexcel']['name'][$i], PATHINFO_EXTENSION);
您可以检查路径信息文档 http://php.net/manual/en/function.pathinfo.php您将看到如何获取不带路径或扩展名的文件名:
$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");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)