Как я могу «присоединить» байтовый массив ASP.NET к полю ввода типа «файл» на форме? - PullRequest
2 голосов
/ 06 октября 2011

В моем приложении ASP.NET я хочу отправить запрос POST сторонней службе редактирования документов ( Zoho ). Я понимаю, как сделать этот запрос с помощью внешней формы, и как сделать ее в моем коде VB.NET. Однако, поскольку файл, который я отправляю, хранится в моей базе данных в виде байтового массива, а результаты POST (страница редактора на веб-сайте Zoho) должны отображаться в специальной «цели» (в новом окне или в фрейме), похоже, мне нужна какая-то странная комбинация обоих.

В принципе, я хочу прикрепить содержимое этого байтового массива

Dim fileContents() As Byte = Files.get(fileId)

в поле ввода файла в этой форме

<form id="theForm" action="http://zohoservice" method="POST" target="_blank" >
    ...
    <input type="file" name="fileContents" />
</form>

и затем отправьте его через javascript, как это

theForm.submit();

Надеюсь, я не прошу невозможного. Спасибо за вашу помощь!

1 Ответ

3 голосов
/ 06 октября 2011

Вы на самом деле не можете делать то, что предлагаете.При использовании <input type="file" .../> загруженный файл никогда не загружается в HTML.Вместо этого он включен как часть запроса POST.Так что вы действительно хотите сделать полный запрос POST и отправить этот пост в ваше действие (http://zohoservice).

Это выполнимо, но это будет немного работы с вашей стороны, и вам понадобитсячтобы понять, как создать POST-запрос MIME, состоящий из нескольких частей, и если есть какие-либо технологии защиты от ботов или отслеживание состояния (виды вещей), то у вас возникнут некоторые проблемы.

...