2017-08-03 56 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"); 
} 
相關問題