Получение (имя «файл» не существует в текущем контексте) сообщение - PullRequest
1 голос
/ 16 января 2012

ОБНОВЛЕНИЕ 1:

Ниже приведен полный код из загруженного примера без редактирования:

using System;
using System.IO;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        String UpPath;
        UpPath = "C:\\UploadedUserFiles";

        if (!Directory.Exists(UpPath))
        {
            Directory.CreateDirectory("C:\\UploadedUserFiles\\");
        }
    }
    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        HttpFileCollection uploads = HttpContext.Current.Request.Files;
        for (int i = 0; i < uploads.Count; i++)
        {
            HttpPostedFile upload = file;

            if (upload.ContentLength == 0)
                continue;

            string c = System.IO.Path.GetFileName(upload.FileName); // We don't need the path, just the name.

        try
            {
            upload.SaveAs("C:\\UploadedUserFiles\\" + c);
            Span1.InnerHtml = "Upload(s) Successful.";
            }
        catch(Exception Exp)
            {
                Span1.InnerHtml = "Upload(s) FAILED.";
            }
        }
    }
}

ОРИГИНАЛЬНЫЙ ВОПРОС:

Я только что скачал пример «загрузки файлов» с www.asp.net:

Ссылка на учебное пособие: http://www.asp.net/web-forms/videos/how-do-i/how-do-i-multiple-file-uploads-in-aspnet-2 Ссылка для скачивания: http://download.microsoft.com/download/8/6/9/869ff08a-1e39-4bab-a303-f7dcedc52427/CS-ASP-MultiFileUpload-CS.zip

и скопировал файлы на мой веб-сервер после распаковки.

Когда я перехожу к http://server/uploader/Default.aspx

Он создает папку на серверах c диска успешно, но в веб-браузере я получаюследующая ошибка:

Server Error in '/' Application.
--------------------------------------------------------------------------------

Compilation Error 
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. 

Compiler Error Message: CS0103: The name 'file' does not exist in the current context

Source Error:



Line 29:         for (int i = 0; i < uploads.Count; i++)
Line 30:         {
Line 31:             HttpPostedFile upload = file;
Line 32: 
Line 33:             if (upload.ContentLength == 0)


Source File: c:\Inetpub\wwwroot\uploader\Default.aspx.cs    Line: 31 


--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.50727.3623; ASP.NET Version:2.0.50727.3618 

Кто-нибудь знает, почему это происходит?

Ответы [ 3 ]

1 голос
/ 16 января 2012

Кажется, ошибка в примере кода. Попробуйте заменить это

HttpPostedFile upload = file

от

HttpPostedFile upload = uploads[i]
1 голос
/ 16 января 2012

Вы обращаетесь к необъявленному файлу локальной переменной, вы должны извлечь HttpPostedFile из загруженной коллекции "Items", используя индекс Item;

HttpPostedFile upload = uploads[i]; 
0 голосов
/ 16 января 2012

Наряду с «Default.aspx» и «Default.aspx.cs» необходим файл «Default.aspx.Designer.cs».Поскольку все элементы управления определены со своим стилем в файле «Designer».

...