0

不器用な英語をあらかじめお詫びします) 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 Current

                       Dload  Upload   Total   Spent    Left  Speed

0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0" そして "curl: (6) Could not resolve host: curl -TC :\001.mov ftp:--.---.---.--- -u user".それがコロンの前で切れているのがおかしい..

そして、その前のコマンドではなく、最も単純なコマンドでコメント行を使用すると、「curl: (1) Protocol curl http not supported or disabled in libcurl」というエラーが表示されます。

コマンドラインが原因で、同じコマンドが正常に機能する理由がわかりません!

4

1 に答える 1

0

引数ベクトルが間違っています。引数ごとに個別のエントリを使用する必要があります (残念ながら、Adobe Live Docsは、これがどのように見えるかについてあまり明確ではありません)。またcurl、引数として渡す必要はありません。プロセスは既に知っています実行可能ファイル。

var arguments:Vector.<String> = new Vector.<String>();
arguments[0] = '-T';
arguments[1] = uploadFile.nativePath;
arguments[2] = server;
arguments[3] = '-u';
arguments[4] =  username + ':' + password;

そして、それを確認してください

curl -T uploadfile server -u user:passwd

実際には正しい形式です。少なくともマニュアルの例は少し異なり、次のようになります

curl -T uploadfile -u user:passwd server

これが違いを生むかどうかはわかりません。

于 2013-08-26T12:22:30.283 に答える