我为笨拙的英语提前道歉)我在 Flex 中启动 cURL 时遇到问题。这是我的代码:
private var process:NativeProcess;
private var file:File = new File();
private var uploadFile:File = new File();
private var username:String = "user";
private var password:String = "pass";
private var server:String = "ftp:\\--.---.---.---";
public var loadingBar:LoadingBar;
private function startUpload(event:Event):void
{
loadingBar = LoadingBar(PopUpManager.createPopUp( this, LoadingBar, true));
loadingBar.progressBar.source = process;
PopUpManager.centerPopUp(loadingBar);
file.nativePath = "C://curl.exe";
uploadFile.nativePath = "C://001.mov";
var arguments:Vector.<String> = new Vector.<String>();
arguments.push("curl -T " + uploadFile.nativePath + " " + server + " -u " + username + ":" + password);
//arguments.push("curl http://isc.sans.org/infocon.txt");
trace(arguments);
var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
nativeProcessStartupInfo.arguments = arguments;
nativeProcessStartupInfo.executable = file;
process = new NativeProcess();
process.start(nativeProcessStartupInfo);
process.addEventListener(ProgressEvent.STANDARD_ERROR_DATA, onStandardErrorData);
process.addEventListener(NativeProcessExitEvent.EXIT, onStandardOutputExit);
process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onOutputData);
process.addEventListener(IOErrorEvent.STANDARD_OUTPUT_IO_ERROR, onOutputIOError);
process.addEventListener(IOErrorEvent.STANDARD_INPUT_IO_ERROR, onInputClose);
process.addEventListener(IOErrorEvent.STANDARD_ERROR_IO_ERROR, onStandardIOError);
}
standardErrorData 问题 "% Total % Received % Xferd Average Speed Time Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0" 然后是 "curl: (6) 无法解析主机: curl -TC :\001.mov ftp:--.---.---.--- -u user"。那是在冒号之前被截断的,这很奇怪..
如果我将注释行与最简单的命令一起使用,而不是前面的命令,我会收到错误“curl:(1)协议 curl http 在 libcurl 中不受支持或禁用”。
我不明白为什么因为命令行相同的命令工作正常!