Не удается загрузить файл в WebApp Отказано в доступе - PullRequest
0 голосов
/ 08 июня 2018

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

System.UnauthorizedAccessException: доступ к пути «C: \ Users \ NAME \ Documents \ Uploads» запрещен.at System.IO .__ Error.WinIOError (Int32 errorCode, String MaybeFullPath) '

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

Мой код здесь:

<%@ Page Language="C#" %>
<script runat="server">

    void SubmitButton_Click(Object sender, EventArgs e) {
       if (File1.PostedFile != null) {
          try {
             File1.PostedFile.SaveAs("C:\\Users\\NAME\\Documents\\Uploads");
             Span1.InnerHtml = "Upload Successful!";
          }
          catch (Exception ex) {
             Span1.InnerHtml = "Error saving file <b>C:\\" +
                File1.Value + "</b><br>" + ex.ToString();
          }
       }
    } 

</script>
<html>
<head>
</head>
<body>
    <form runat="server" enctype="multipart/form-data">
        Select a file to upload:<br />
        <input type="file" id="File1" runat="Server">
        <p>
        <input type="submit" id="Submit1" runat="Server" 
         value="Upload File" OnServerClick="SubmitButton_Click">
        <p>
        <span id="Span1" runat="Server" />
    </form>
    </span>
    <p>
</body>
</html>

Ответы [ 2 ]

0 голосов
/ 10 июня 2018

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

0 голосов
/ 10 июня 2018

void SubmitButton_Click(Object sender, EventArgs e) {
   if (File1.PostedFile != null) {
      try {

     File1.PostedFile.SaveAs(HttpContext.Current.Server.MapPath("/Uploads"));
         Span1.InnerHtml = "Upload Successful!";
      }
      catch (Exception ex) {
         Span1.InnerHtml = "Error saving file <b>C:\\" +
            File1.Value + "</b><br>" + ex.ToString();
      }
   }
} 

В методе SaveAs необходимо указать приложению использовать метод Server.MapPath, чтобы использовать путь в приложении, а не абсолютный путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...