您好,我遇到了從批處理文件運行curl命令的問題。我執行從PHP代碼的文件是這樣的:使用CURL命令的批處理文件在PHP中執行不正確,但從命令行運行
exec("curlPut.bat $zipName $url", $output);
我改變目錄中的PHP代碼到批處理文件和拉鍊都位於我運行該批處理文件之前。
這是腳本:
@echo off
curl -X PUT -H "Content-Type:application/zip" --data-binary @%1 %2
然而,當我檢查URL中的PUT命令,就是要發送的zip文件,數據不存在。
當我在Windows cmd中運行完全相同的腳本時,它完美地工作。
curlPut.bat zipFile.zip http://exampleurl
這是利用我作爲參數傳遞在我的PHP代碼完全相同的數據,想不通爲什麼批處理文件適用於一個而不是其他任何人都可以幫忙嗎?
在兩個不同的上下文中運行該命令。當您從命令行運行它時,上傳'zipFile.zip'的文件位於當前目錄中。當你從PHP運行它時,當前目錄可能會有所不同。甚至有可能''.bat'文件根本無法啓動,因爲PHP無法找到它。在PHP代碼中爲'curlPut.bat'和'zipFile.zip'使用絕對路徑。 – axiac
對不起,我應該提到我在運行批處理文件之前更改了PHP代碼中的目錄,並且批處理文件和zip文件都位於此處。用這個信息更新我的問題。 – olliejjc16