2013-05-05 2 views
0

Flex AIR 응용 프로그램에서 NativeProcess API 및 말풍선을 사용하여 ftp-server에 파일을 업로드하고 싶습니다.
다음은 단순 코드이다AIR NativeProcess가 작업을 수행하지만 ProgressEvent로 진행 데이터를 보냅니다 .STANDARD_ERROR_DATA

protected function startProcess(event:MouseEvent):void 
{ 
    var processInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo(); 
    processInfo.executable = new File('/usr/bin/curl'); 
    var processArgs:Vector.<String> = new Vector.<String>(); 
    processArgs.push("-T");     
    processArgs.push("/Users/UserName/Desktop/001.mov");      
    processArgs.push("ftp://domainIp//www/site.com/");     
    processArgs.push("--user");     
    processArgs.push("username:password");     
    processInfo.arguments = processArgs; 

    var process:NativeProcess = new NativeProcess(); 
    process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, outputDataHandler); 
    process.addEventListener(ProgressEvent.STANDARD_ERROR_DATA, errorOutputDataHandler); 
    process.start(processInfo); 
} 

이 잘 일을한다 (즉, 대상 파일이 업로드)하지만 ProgressEvent.STANDARD_ERROR_DATA 대신 ProgressEvent.STANDARD_OUTPUT_DATA 방출 모든 진도 데이터가 process.standardError 간다.

% Total % Received % Xferd Average Speed Time Time  Time Current 
           Dload Upload Total Spent Left Speed 

0  0 0  0 0  0  0  0 --:--:-- --:--:-- --:--:--  0 

0  0 0  0 0  0  0  0 --:--:-- --:--:-- --:--:--  0 

1 15.8M 0  0 1 200k  0 166k 0:01:37 0:00:01 0:01:36 177k 

2 15.8M 0  0 2 381k  0 143k 0:01:53 0:00:02 0:01:51 146k 

... 

내 코드에 어떤 문제가 있습니까 : 여기

protected function errorOutputDataHandler(event:ProgressEvent):void 
{ 
    var process = event.currentTarget as NativeProcess; 
    trace(process.standardError.readUTFBytes(process.standardError.bytesAvailable)); 
} 

는 후자의 기능의 출력입니까? 어떻게 디버깅 할 수 있습니까?
감사합니다.

답변

2

컬의 진행률을 볼 수 있습니다. -sS 옵션을 사용 설정하여 오류 메시지를 비활성화하십시오.

+0

이것은 curl이 stdout을 오염시키지 않기 위해 stderror에 정보를 기록하기 때문입니다. –

+0

사용자에게 진행 상황을 알려주기 위해 stderror에서 정보를 읽는 것이 안전합니까? –

관련 문제