2017-08-03 58 views
0

我是新到FreeBSD/nginx的,所以类似的问题答案对我没有帮助;( 我运行代码:脚本来执行命令将所有文件夹

$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)&我被处理文件逐个; CNVTxls2csv是转换器 现在我有AJAX上传和希望的文件夹中的所有文件执行EXEC命令。 ,保持原始文件名,我试着用result.xls运行相同的代码换成*(星),但它没有奏效。

我有什么:使用Excel文件

我想要什么

文件夹TMP/XLS:

转换的所有Excel文件夹茵为.csv保留原来的名称。 将不胜感激任何帮助。

更新:对目录中的所有文件执行命令以创建/编辑脚本的最佳方式,以便在bash中更容易地操作目录中的所有文件。祝你好运。

+0

你在哪里放上'*'?假设在上面的代码中你的意思是'/ var/tmp/xls/*。xls'(而不是'/ var/tmp/xls/result.xls *'?) – Andy

+0

@Andy yes,exec(“/ usr/local/bin/cnvt /var/tmp/xls/*.xlsx/var/tmp /“); 没有工作 – upicik

+0

请显示'$ i'的来源。 –

回答

1

看你怎么提取的扩展...

$分机= PATHINFO($ _FILES [ 'rawexcel'] [ '名'] [$ 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"); 
} 
相关问题