2013-12-16 4 views
0

Итак, я создаю коннекторную программу (исполняемый файл) в качестве бэкэнда веб-сайта, программа написана в Visual Studio 2010 (.NET 4.0) с использованием C#.Почтовый файл к исполняемому

В принципе, код интерфейса вызовет исполняемый файл с параметрами (или аргументом командной строки), тогда программа вызовет разную функцию и выполнит соответствующую операцию.

Теперь я столкнулся с проблемой с , загружаю файлы. Веб-сайт попросит пользователя просмотреть файл, а затем нажать кнопку «Загрузить». После нажатия кнопки загрузки веб-сайт вызовет исполняемый файл. Моя идея заключается в исполняемом файле, как-то получить загруженный файл и сохранить копию на локальном сервере, а затем выполнить любые изменения в локальной копии.

Надеюсь, я достаточно хорошо объяснил свое дело. Итак, мой по всему вопросу: Есть ли способ для моего исполняемого файла в основном получить файл для загрузки?

Я знаю, что могут быть другие работы, такие как отправка запроса POST непосредственно на URL-адрес, но здесь это не так. При текущей настройке веб-сайта и внутреннего кода требуется, чтобы я использовал автономный исполняемый файл.

Любая помощь будет благодарна, спасибо!

+0

Если ответа 'stdio' (см. Slaks ') недостаточно, вам обычно нужно написать опубликованный файл во временный файл (т. Е. В фактической области темпа OS) и передать путь к temp файл к exe. Единственный другой вариант, который бросается в глаза, - это «именованные каналы», но это массовое переполнение. –

ответ

3

Вы можете записать входящий файл в исполняемый файл 'StandardInput.

+0

Спасибо за быстрый ответ. Можете ли вы привести пример использования StandardInput? Я читаю на сайте MSDN, и я не могу понять, как использовать его с файлом загрузки. Скажем, пользователь пытается загрузить файл test1.xlsx, в мой exe 'myProgram.exe', с параметром 'op1' и 'op2'. В моем коде для моего исполняемого файла я должен использовать myPorcess.StartInfo.FileName = "test1.xlsx" ;? и как файл forntend передаст исполняемый файл? Это просто параметр, указывающий имя файла, или это POST reuqest для exe? – sora0419

+0

У вас нет файла на диске. Вместо этого вам нужно записать байты, которые вы получаете по сети, в stdin: 'postFile.Stream.CopyTo (process.StandardInput.BaseStream)'. – SLaks

Смежные вопросы