powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Загрузка файла c клиента на сервер
10 сообщений из 10, страница 1 из 1
Загрузка файла c клиента на сервер
    #34043232
NWP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NWP
Гость
Добрый день коллеги

странности творяться, не пойму в чем дело.

Вводная инфа:
.NET framework v1.1.4322
IIS 5.0.
VS2003

код формы:

<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="QuickBid.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
    <HEAD>
        <title>WebForm1</title>
        <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
        <meta name="CODE_LANGUAGE" Content="C#">
        <meta name="vs_defaultClientScript" content="JavaScript">
        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    </HEAD>
    <body MS_POSITIONING="GridLayout">
        <form id="Form1" method="post" runat="server" encType="multipart/form-data">
            <INPUT id="File1" style="Z-INDEX: 101; LEFT: 16px; POSITION: absolute; TOP: 8px" type="file"
                 name="File1"   runat="server" >

            <asp:Button id="Button1" style="Z-INDEX: 102; LEFT: 264px; POSITION: absolute; TOP: 8px"
                  runat="server" Text="Button"></asp:Button>
        </form>
    </body>
</HTML>

В коде за этой формой вообще ничего не делается, то есть просто тестовая пустая форма с контролом HtmlFileUpload и <asp:Button>.
Хочется чтобы при нажатии на button в обработчике onclick получить переданный файл и сохранить его в БД (ну собственно это к делу не относится :) ).
Так вот в этой простой форме, если я укажжу файл размером до 3 мегабайт и нажму на буттон, то все ОК. А вот файлы размером от 5 и выше МБ не грузятся. Вернее даже не то, что не грузятся, а просто експлорер сразу же дает ошибку сервер не найден и отображает стандартный текст "НЕВОЗМОЖНО ОТОБРАЗИТЬ СТРАНИЦУ" попробуйте обновить страницу, проверьте настройки SSL и т.п. При этом управление даже и не попадает в код этой формы в такие обработчики как клик на кнопку или Page_Load. Таким образом я даже не могу проверить размер загружаемого файла и показать свое, более дружелюбное сообщение.

И что самое интересное!!!! Если в HtmlFileUpload контроле убрать runat="server" (выделил это место в примере кода) то тогда такой ошибки не возникает, но, естественно, тогда я не могу обработать его из кода формы и получить картинку.
Или если я не использую runat=server, но указываю name=File1, то та же самая ерунда случается. Видимо ошибка случается когда этот файл помещается куда-то там в post :) Надеюсь не глупость сказал :)

Собственно от сюда и возникают вопросы:
1. Почему происходит то, что происходит и как это вылечить, Может где-то в свойствах IIS это делается?
2. Если ни как, то как можно выдернуть инфу, если файловый контрол не будет иметь cвойство runat=server да к тому же не будет иметь name. Вроде же тогда ни как из Request ни чего не вытащить?
3. Тогда может быть можно как-то ограничить размер загружаемого файла еще на стороне клиента, может java скриптом какнить? Чтоб он был простой и работал на многих клиентах. тут я не силен :(
4. На худой конец может как-то можно включить переадресацию именно этой ошибки ("сервер не найден") и именно происходящей на этой странице, на кастомную страницу, где бы я мог написать что файл имеет большой размер и все такое....


Вот собственно...
спасибо!
...
Рейтинг: 0 / 0
Загрузка файла c клиента на сервер
    #34043269
vopr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
грешу на proxy
...
Рейтинг: 0 / 0
Загрузка файла c клиента на сервер
    #34043288
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
voprгрешу на proxy
зря
греши сюда
<httpRuntime maxRequestLength="1000000" />
web.config
...
Рейтинг: 0 / 0
Загрузка файла c клиента на сервер
    #34043388
bag123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
По умолчанию в ASP.NET предусмотрен размер файла для закачки 4 МБ

Если нужно больше, то необходимо поправить web.config таким образом:

<system.web>
<httpRuntime maxRequestLength="2097151"/>
где 2097151 — максимальный размер загружаемого файла в кБ.

Сразу оговорюсь — я это использую на VS 2005, но вроде должно сработать и на VS 2003.





Здравствуйте, NWP, Вы писали:

NWP>Добрый день коллеги

NWP>странности творяться, не пойму в чем дело.

NWP>Вводная инфа:
NWP>.NET framework v1.1.4322
NWP>IIS 5.0.
NWP>VS2003

NWP>код формы:
NWP>
NWP><%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="QuickBid.WebForm1" %>
NWP><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
NWP><HTML>
NWP>    <HEAD>
NWP>        <title>WebForm1</title>
NWP>        <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
NWP>        <meta name="CODE_LANGUAGE" Content="C#">
NWP>        <meta name="vs_defaultClientScript" content="JavaScript">
NWP>        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
NWP>    </HEAD>
NWP>    <body MS_POSITIONING="GridLayout">
NWP>        <form id="Form1" method="post" runat="server" encType="multipart/form-data">
NWP>            <INPUT id="File1" style="Z-INDEX: 101; LEFT: 16px; POSITION: absolute; TOP: 8px" type="file"
NWP>                 name="File1"   runat="server" >

NWP>            <asp:Button id="Button1" style="Z-INDEX: 102; LEFT: 264px; POSITION: absolute; TOP: 8px"
NWP>                  runat="server" Text="Button"></asp:Button>
NWP>        </form>
NWP>    </body>
NWP></HTML>
NWP>

NWP>В коде за этой формой вообще ничего не делается, то есть просто тестовая пустая форма с контролом HtmlFileUpload и <asp:Button>.
NWP>Хочется чтобы при нажатии на button в обработчике onclick получить переданный файл и сохранить его в БД (ну собственно это к делу не относится :) ).
NWP>Так вот в этой простой форме, если я укажжу файл размером до 3 мегабайт и нажму на буттон, то все ОК. А вот файлы размером от 5 и выше МБ не грузятся. Вернее даже не то, что не грузятся, а просто експлорер сразу же дает ошибку сервер не найден и отображает стандартный текст "НЕВОЗМОЖНО ОТОБРАЗИТЬ СТРАНИЦУ" попробуйте обновить страницу, проверьте настройки SSL и т.п. При этом управление даже и не попадает в код этой формы в такие обработчики как клик на кнопку или Page_Load. Таким образом я даже не могу проверить размер загружаемого файла и показать свое, более дружелюбное сообщение.

NWP>И что самое интересное!!!! Если в HtmlFileUpload контроле убрать runat="server" (выделил это место в примере кода) то тогда такой ошибки не возникает, но, естественно, тогда я не могу обработать его из кода формы и получить картинку.
NWP>Или если я не использую runat=server, но указываю name=File1, то та же самая ерунда случается. Видимо ошибка случается когда этот файл помещается куда-то там в post :) Надеюсь не глупость сказал :)

NWP>Собственно от сюда и возникают вопросы:
NWP>1. Почему происходит то, что происходит и как это вылечить, Может где-то в свойствах IIS это делается?
NWP>2. Если ни как, то как можно выдернуть инфу, если файловый контрол не будет иметь cвойство runat=server да к тому же не будет иметь name. Вроде же тогда ни как из Request ни чего не вытащить?
NWP>3. Тогда может быть можно как-то ограничить размер загружаемого файла еще на стороне клиента, может java скриптом какнить? Чтоб он был простой и работал на многих клиентах. тут я не силен :(
NWP>4. На худой конец может как-то можно включить переадресацию именно этой ошибки ("сервер не найден") и именно происходящей на этой странице, на кастомную страницу, где бы я мог написать что файл имеет большой размер и все такое....


NWP>Вот собственно...
NWP>спасибо!
...
Рейтинг: 0 / 0
Загрузка файла c клиента на сервер
    #34043501
NWP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NWP
Гость
Здравствуйте, bag123, Вы писали:



Я так и знал, так и знал, тока не знал где искать :)

Спасибо!

Проблему это конечно решило, но позвольте несколько вопросов.....

1. Насколько опасно ставить максимальный размер, с учетом того, что все равно в коде я буду проверять размер файла и не ложить в базу большие файлы, ведь наверно это размер вообще всех данных что можно передать в запросе?
2. Как можно обработать ситуацию, когда превышается указаннй в Web.Config размер, что бы выдать юзеру человеческое сообщение, того, что собственно файл большой.
3. И еще вопрос. Получая свойство File1.PostedFile.InputStream.Length будет ли уже произведена фактически закачка или она произойдет тока в момент вызова File1.PostedFile.InputStream.Read. Иными словами будет ли кушаться лишний раз трафик. Если трафик будет, то как его можно избежать и можно ли?


Еще раз спасибо :)




B>Добрый день.
B>По умолчанию в ASP.NET предусмотрен размер файла для закачки 4 МБ

B>Если нужно больше, то необходимо поправить web.config таким образом:

B><system.web>
B> <httpRuntime maxRequestLength="2097151"/>
B>где 2097151 — максимальный размер загружаемого файла в кБ.

B>Сразу оговорюсь — я это использую на VS 2005, но вроде должно сработать и на VS 2003.
...
Рейтинг: 0 / 0
Загрузка файла c клиента на сервер
    #34043595
BelousovAG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сразу хочу сказать — все что я сейчас предложу — я использую в VS 2005.
Насчет VC 2003 не могу точно сказать.

Вообще то мне кажется (хотя я может быть и не прав), что лучше всего сначала файл закачать на сервер, а потом уже его вставить в базу.
Насчет максимального размера просто приведу пример — пробовал вставить файл 700 МБ в локале — скачал на сервер без проблем, но при вставке в базу — сервер просто загнулся.

Если еще есть вопросы — задавайте.

Здравствуйте, NWP, Вы писали:

NWP>Здравствуйте, bag123, Вы писали:



NWP>Я так и знал, так и знал, тока не знал где искать :)

NWP>Спасибо!

NWP>Проблему это конечно решило, но позвольте несколько вопросов.....

NWP>1. Насколько опасно ставить максимальный размер, с учетом того, что все равно в коде я буду проверять размер файла и не ложить в базу большие файлы, ведь наверно это размер вообще всех данных что можно передать в запросе?


NWP>2. Как можно обработать ситуацию, когда превышается указаннй в Web.Config размер, что бы выдать юзеру человеческое сообщение, того, что собственно файл большой.
NWP>3. И еще вопрос. Получая свойство File1.PostedFile.InputStream.Length будет ли уже произведена фактически закачка или она произойдет тока в момент вызова File1.PostedFile.InputStream.Read. Иными словами будет ли кушаться лишний раз трафик. Если трафик будет, то как его можно избежать и можно ли?


NWP>Еще раз спасибо :)




B>>Добрый день.
B>>По умолчанию в ASP.NET предусмотрен размер файла для закачки 4 МБ

B>>Если нужно больше, то необходимо поправить web.config таким образом:

B>><system.web>
B>> <httpRuntime maxRequestLength="2097151"/>
B>>где 2097151 — максимальный размер загружаемого файла в кБ.

B>>Сразу оговорюсь — я это использую на VS 2005, но вроде должно сработать и на VS 2003.
...
Рейтинг: 0 / 0
Загрузка файла c клиента на сервер
    #34043628
NWP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NWP
Гость
Здравствуйте, BelousovAG, Вы писали:


BAG>Если еще есть вопросы — задавайте.

Есть еще вопросы :)


2. Как можно обработать ситуацию, когда превышается указаннй в Web.Config размер, что бы выдать юзеру человеческое сообщение вместо сервер не найден.
...
Рейтинг: 0 / 0
Загрузка файла c клиента на сервер
    #34043707
BelousovAG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, NWP, Вы писали:

NWP>Здравствуйте, BelousovAG, Вы писали:


BAG>>Если еще есть вопросы — задавайте.

NWP>Есть еще вопросы :)


NWP>2. Как можно обработать ситуацию, когда превышается указаннй в Web.Config размер, что бы выдать юзеру человеческое сообщение вместо сервер не найден.

Наверное только в коде, при определении размера файла выдавать предупреждение.
...
Рейтинг: 0 / 0
Загрузка файла c клиента на сервер
    #34043729
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NWP
2. Как можно обработать ситуацию, когда превышается указаннй в Web.Config размер, что бы выдать юзеру человеческое сообщение вместо сервер не найден.
Если превышает намного ( например файл 100 метров) - то никак. так как до сервера этот файл даже не дойдет. Это на M$ написано bugs не помню какой.
...
Рейтинг: 0 / 0
Загрузка файла c клиента на сервер
    #34047832
mogadanez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, NWP, Вы писали:

NWP>1. Насколько опасно ставить максимальный размер, с учетом того, что все равно в коде я буду проверять размер файла и не ложить в базу большие файлы, ведь наверно это размер вообще всех данных что можно передать в запросе?

Опасно для чего? смотря чего боитесь?

NWP>2. Как можно обработать ситуацию, когда превышается указаннй в Web.Config размер, что бы выдать юзеру человеческое сообщение, того, что собственно файл большой.

В идеале руками парсить входящий поток, и прочитав Content-Length сразу завершить чтение если оно больше лимита.

NWP>3. И еще вопрос. Получая свойство File1.PostedFile.InputStream.Length будет ли уже произведена фактически закачка или она произойдет тока в момент вызова File1.PostedFile.InputStream.Read. Иными словами будет ли кушаться лишний раз трафик. Если трафик будет, то как его можно избежать и можно ли?

Более того, загруженный файл ЦЕЛИКОМ будет в оперативной памяти. если его потом записывать в базу, перегоняя поток сначала например в byte[] то файл будет в памяти 2 раза.
посчитайте сколько вам надо оперативной памяти, на хотя бы 3 одновременные закачки фалйов по 1Гб, учитывая что в machine.config по умолчанию задано:


<processModel ...  memoryLimit = "60"  ...> 
<!-- memoryLimit="[number]" - Represents percentage of physical memory process is allowed to use before process is recycled -->... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Загрузка файла c клиента на сервер
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]