загрузка файла на сервер не сохраняет мой файл - PullRequest
0 голосов
/ 29 ноября 2011

на стороне сервера, у меня есть такие:

ASPX:

<form id="form1" runat="server" enctype="multipart/form-data">
    <input type="file" id="myFile" name="myFile" />
    <asp:Button runat="server" ID="btnUpload" OnClick="btnUploadClick" Text="Upload" />
</form>

CS:

protected void btnUploadClick(object sender, EventArgs e)
{
   HttpPostedFile file = Request.Files["myFile"];
   if (file != null && file.ContentLength > 0)
   {
      string fname = Path.GetFileName(file.FileName);
      file.SaveAs(Server.MapPath(Path.Combine("~/Files/", fname)));
   }
}

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

private void btnStart_Click(object sender, RoutedEventArgs e)
        {            

            Uri uploadAddress = new Uri("http://localhost/WebUpload/default.aspx");

                WebClient wc = new WebClient();
                wc.UploadProgressChanged += new UploadProgressChangedEventHandler(wc_UploadProgressChanged);
                wc.UploadFileCompleted += new UploadFileCompletedEventHandler(wc_UploadFileCompleted);
                wc.Credentials = CredentialCache.DefaultCredentials;

                wc.UploadFile(uploadAddress, "POST", m_filename);

        }

        void wc_UploadFileCompleted(object sender, UploadFileCompletedEventArgs e)
        {
            if (e.Error != null)
                txtProgress.Content = e.Error.Message;
            else
                txtProgress.Content = "Completed";
        }

        void wc_UploadProgressChanged(object sender, UploadProgressChangedEventArgs e)
        {
            txtProgress.Content = String.Format("{0}% completed",
                e.ProgressPercentage);
        }

для клиентского приложения: это простой веб-клиент, использующий uploadfileasync через HTTP POST на страницу aspx.

Вопрос: файлы обычно сохраняются с использованием страницы aspxно для клиентского приложения файл загружается и не сохраняется в папке.Что может происходить?Я почти уверен, что это проблема на стороне сервера.

Обновление: добавлен код на стороне клиента.Клиентское приложение работает на другом (но asp classic) сервере, поэтому я сомневаюсь, что именно клиент нуждается в исправлении.

1 Ответ

0 голосов
/ 01 декабря 2011

Повторное размещение моего комментария, так как Ян никогда не публиковал ответ.

Спасибо Яну за то, что он указал мне правильное направление. Код получения файла должен был быть в page_load, это было небрежно для меня. Другой проблемой было строковое имя индекса файла (Request.Files ["myFile"]), который должен иметь тот же идентификатор, что и элемент управления вводом на странице aspx.

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