Как контролировать размер загружаемого файла в .NET / C #? - PullRequest
0 голосов
/ 15 июня 2011

В приложении .NET есть страница для загрузки.Он работает нормально, если загруженный файл меньше 4 МБ.Как мне установить размер загружаемого файла?Я бы хотел установить ограничение не более 8 МБ.И если размер файла превышает 8 МБ, процесс загрузки будет определен.

Это мой код в бэкэнде.File1 - это контроллер загрузки.

protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
    if ((File1.PostedFile != null) && (File1.PostedFile.ContentLength > 0))
    {
        string name=ViewState["UserName"].ToString();
        string fn = System.IO.Path.GetFileName(File1.PostedFile.FileName);
        string extension = Path.GetExtension(File1.PostedFile.FileName);
        if (extension == "")
            return;
        DirectoryInfo di = new DirectoryInfo(Server.MapPath("~/Attachments/" + name));
        FileInfo[] rgFiles = di.GetFiles("*.*");
        foreach (FileInfo fi in rgFiles)
        {
            if (fi.Name.Equals(fn))
            {
                ShowMessage(this, "This file name already exists, please check the list.");
                return;
            }
        }
        string SaveLocation = Server.MapPath("~/Attachments/" + name + "/" + fn);
        try
        {
            File1.PostedFile.SaveAs(SaveLocation);
            ShowMessage(this,"The file has been uploaded.");
        }
        catch (Exception ex)
        {

            ShowMessage(this,"Error" + ex.Message);
        }
        GetList();
    }
    else
    {
        ShowMessage(this,"Please choose one file");
    }
}

Ответы [ 4 ]

1 голос
/ 15 июня 2011
<configuration>   
  <system.web>     
       <httpRuntime maxRequestLength="8000" />   
  </system.web> 
 </configuration> 
1 голос
/ 15 июня 2011

Вы используете web.config для сортировки.В частности, свойство maxRequestLength.

См. Здесь.

0 голосов
/ 15 июня 2011

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

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

Единственное решение, которое я мог придумать, это загрузчик флэш-файлов, который сжимал файл на клиентском компьютере, а затем отправлял сжатый файл на сайт. Таким образом, изображение размером 200 МБ становится файлом размером 100 КБ. Есть некоторые проекты с открытым исходным кодом, просто нужно погуглить их. Это то, что делают такие сайты, как Facebook и Picasa, для загрузки документов / изображений.

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

0 голосов
/ 15 июня 2011
...