2013-12-16 4 views
0

그래서 웹 사이트의 백엔드로 커넥터와 같은 프로그램 (실행 파일)을 만들고 있는데,이 프로그램은 C#을 사용하여 Visual Studio 2010 (.NET 4.0)으로 작성되었습니다.게시 파일 실행 파일

기본적으로 프론트 엔드 코드는 매개 변수 (또는 명령 줄 인수)로 실행 파일을 호출 한 다음 프로그램이 다른 함수를 호출하고 적절한 작업을 수행합니다.

이제 파일을 업로드 할 때 문제가 발생했습니다. 웹 사이트는 사용자에게 파일을 찾은 다음 업로드 버튼을 누르라고 요청합니다. 업로드 버튼을 누르면 웹 사이트에서 실행 파일을 호출합니다. 내 생각은 실행 파일에, 어떻게 든 업로드 된 파일을 가져 와서 복사본을 로컬 서버에 저장 한 다음 로컬 복사본에 수정을 수행합니다.

필자는 내 사건에 대해 충분히 설명했으면합니다. 따라서 모든 질문에 내 입니다. 기본적으로 내 실행 파일이 업로드 파일을 가져올 수있는 방법이 있습니까?

URL에 직접 POST 요청을 보내는 것과 같은 다른 해결 방법이있을 수 있지만 여기에는 해당되지 않습니다. 웹 사이트 및 백엔드 코드의 현재 설정을 사용하여 독립형 실행 파일을 사용해야합니다.

도움 주시면 감사하겠습니다.

+0

'stdio' (Slaks의 답 참조)가 충분하지 않다면 일반적으로 게시 된 파일을 임시 파일 (즉, 실제 OS 임시 영역)에 쓰고 임시 경로를 전달해야합니다 exe에 파일. 마음에 떠오르는 유일한 옵션은 "명명 된 파이프"이지만 엄청난 과잉입니다. –

답변

3

들어오는 파일을 실행 프로세스 'StandardInput에 쓸 수 있습니다.

+0

빠른 답장을 보내 주셔서 감사합니다. StandardInput 사용법에 대한 예제를 제공 할 수 있습니까? MSDN 사이트에서 읽고 있는데 업로드 파일과 함께 사용하는 방법을 이해할 수 없습니다. 사용자가 test1.xlsx라는 파일을 내 exe 'myProgram.exe'에 'op1'및 'op2'매개 변수로 업로드하려고한다고 가정 해보십시오. 내 실행 파일의 코드에서 myPorcess.StartInfo.FileName = "test1.xlsx";를 사용해야합니까? forntend는 어떻게 파일을 실행 파일로 전달할 것인가? 파일 이름을 지정하는 매개 변수 일 뿐이며 아니면 exe에서 POST가 다시 실행되는 것입니까? – sora0419

+0

디스크에 파일이 없습니다. 대신 네트워크를 통해받은 바이트를 stdin :'postFile.Stream.CopyTo (process.StandardInput.BaseStream)'에 써야합니다. – SLaks