您好,我遇到了从批处理文件运行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