0

Я хочу загрузить файл непосредственно из dropbox.I могу получить содержимое файла, который я хочу загрузить напрямую из dropbox.I не удается отправить файл через поток в браузер , После исключения: Исключение типа 'System.UnauthorizedAccessException' произошло в mscorlib.dll, но не был обработан в пользовательском кодеИсключение при отправке файла через Stream

Дополнительная информация: Доступ к пути «C: \ Program Files (x86) \ IIS Express \ FirstLab_1.pdf 'отрицается. на линии используя (FileStream FileStream = новый FileStream (имя файла, FileMode.Create))

Ниже мой код:

public FileStreamResult Download(string bkpath) 
{ 

    string bookname = bkpath; 
    var accessToken = new OAuthToken("d2iwy26brzqhetr0", "xxxxxxxxxxxx"); 
    var api = new DropboxApi(ConsumerKey, ConsumerSecret, accessToken); 
    var file = api.DownloadFile("dropbox", bookname); 
    string path = file.Path; 
    string filename = Path.GetFileName(path); 
    // Create random data to write to the file. 
    byte[] dataArray = new byte[file.Data.Length]; 
    new Random().NextBytes(dataArray); 

    using (FileStream fileStream = new FileStream(filename, FileMode.Create)) 
    { 
     // Write the data to the file, byte by byte. 
     for (int i = 0; i < dataArray.Length; i++) 
     { 
      fileStream.WriteByte(dataArray[i]); 
     } 

     // Set the stream position to the beginning of the file. 
     fileStream.Seek(0, SeekOrigin.Begin); 

     // Read and verify the data. 
     for (int i = 0; i < fileStream.Length; i++) 
     { 
      if (dataArray[i] != fileStream.ReadByte()) 
      { 
       Response.Write("Error writing data."); 
      } 
     } 
     return new FileStreamResult(fileStream, "application/pdf"); 
    } 
} 

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

ответ

1

Сообщение об исключении описывает проблему довольно хорошо. Просто

a) Щелкните правой кнопкой мыши по папке «C: \ Program Files (x86) \ IIS Express -> Свойства -> Безопасность и дайте права на запись всем.

или намного лучше

б) записать файл в директорию темп.

string filename = Path.Combine(Path.GetTempPath(), Path.GetFileName(path)); 
Смежные вопросы