0
我有一個非常簡單的代碼,但最終的命令我不能將它應用於生成的文件,我無法重命名該文件,我不知道爲什麼。這不是一個重命名的問題,因爲如果我更改$cmd ="cp '$textfile''$file'"
或$cmd ="mv '$textfile''$file'"
的重命名,它也不起作用。我最好用代碼解釋一下:php腳本,不能將命令應用於生成的文件
<?php
// the original file to work with
$file = "COPYING.odt";
//change the extension of doc|pdf|docx|odt|rtf files to txt
$txtfile = preg_replace('"\.(doc|pdf|docx|odt|rtf)$"', '.txt', $file);
//convert the odt file into txt and name it with the original name but txt extension
$cmd = "/usr/bin/unoconv -f txt '$file' -o '$textfile'";
shell_exec($cmd);
//store the file in the originals files folder
rename("$file", "orig/$file");
//rename the generated txt file with the original name and extension "COPYING.odt"
rename("$textfile", "$file");
echo "conversion of file <em>$file</em> done";
?>
有什麼建議嗎?謝謝。
UPDATE我忘了說的一件事是我將這個腳本應用到上傳的文件,所以我不能給出$ file的靜態名稱,而是給出變量$ file。
更新2繼@AlanMachado建議,我已經改變了MV爲命令重命名,而這個重命名的作品,但不是未來。
的文件夾中你有足夠的權限來重命名文件/寫? – Epodax
如果你想要做的是['rename'](http://php.net/manual/en/function.rename.php)或者甚至移動文件,那麼有更好,更邪惡的方法來做到這一點PHP比使用'shell_exec' –
也許你需要在重命名命令中添加(相對或絕對)文件路徑? – jtheman