веб-сайт iis7, к которому осуществляется внешний доступ, загружает файлы на сервер вместо локальной машины

#iis-7 #local #filestream #webrequest

#iis-7 #Местные новости #filestream #webrequest

Вопрос:

У меня есть сайт, настроенный в IIS. Это позволяет пользователям загружать файлы из удаленного облака на свой собственный локальный рабочий стол. ОДНАКО контекст, похоже, перепутан, потому что, когда я получаю доступ к веб-сайту извне через IP и выполняю загрузку, файл сохраняется на сервере, на котором размещен сайт, а не локально. Что происходит??

Мой соответствующий код строк:

 using (var sw2 = new FileStream(filePath,FileMode.Create))
            {           
                    try
                    {
                        var request = new RestRequest("drives/{chunk}");

                        RestResponse resp2 = client.Execute(request);

                       sw2.Write(resp2.RawBytes, 0, resp2.RawBytes.Length);
                    }                    
                }
  

Ответ №1:

Ваш код записывает файл в локальную файловую систему сервера. Если вы хотите отправить файл клиенту, вам нужно сделать что-то вроде

 Response.BinaryWrite(resp2.RawBytes);
  

Объект ответа — это то, что вы используете для отправки данных обратно клиенту, который отправил запрос на вашу страницу.

Комментарии:

1. Ответ. BinaryWrite, похоже, не работает. Файл создается, но в него не записываются никакие данные. Есть предложения?

2. Вы уверены, что в resp2 есть данные, которые вы ожидаете в нем?

3. Фактически, он создает файл — по-прежнему на сервере — но в него не записываются данные.

4. Я уверен, поскольку он отлично работает при сохранении на сервер.

5. Как работает ответ. BinaryWrite знает, в какой файл записывать?

Ответ №2:

Я полагаю, что опубликованный вами фрагмент кода выполняется где-то в каком-то коде, скрытом за ним. Который запущен на сервере — он не будет запущен на клиенте. Вам нужно будет записать эти байты в объект ответа и указать, какой тип содержимого и т.д., И разрешить пользователю сохранять файл самостоятельно.

Комментарии:

1. У меня есть пользовательский тип в месте назначения, и я использую его в качестве пути к файлу. Вы хотите сказать, что мне нужно использовать что-то другое, кроме объекта FileStream?

2. Не имеет значения, что вводит пользователь. Этот код выполняется на СЕРВЕРЕ.