Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Загрузка файла c клиента на сервер
|
|||
|---|---|---|---|
|
#18+
Добрый день коллеги странности творяться, не пойму в чем дело. Вводная инфа: .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. На худой конец может как-то можно включить переадресацию именно этой ошибки ("сервер не найден") и именно происходящей на этой странице, на кастомную страницу, где бы я мог написать что файл имеет большой размер и все такое.... Вот собственно... спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2006, 09:16 |
|
||
|
Загрузка файла c клиента на сервер
|
|||
|---|---|---|---|
|
#18+
грешу на proxy ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2006, 09:40 |
|
||
|
Загрузка файла c клиента на сервер
|
|||
|---|---|---|---|
|
#18+
voprгрешу на proxy зря греши сюда <httpRuntime maxRequestLength="1000000" /> web.config ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2006, 09:48 |
|
||
|
Загрузка файла c клиента на сервер
|
|||
|---|---|---|---|
|
#18+
Добрый день. По умолчанию в 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>спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2006, 10:17 |
|
||
|
Загрузка файла c клиента на сервер
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2006, 10:42 |
|
||
|
Загрузка файла c клиента на сервер
|
|||
|---|---|---|---|
|
#18+
Сразу хочу сказать — все что я сейчас предложу — я использую в 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2006, 11:05 |
|
||
|
Загрузка файла c клиента на сервер
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, BelousovAG, Вы писали: BAG>Если еще есть вопросы — задавайте. Есть еще вопросы :) 2. Как можно обработать ситуацию, когда превышается указаннй в Web.Config размер, что бы выдать юзеру человеческое сообщение вместо сервер не найден. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2006, 11:13 |
|
||
|
Загрузка файла c клиента на сервер
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, NWP, Вы писали: NWP>Здравствуйте, BelousovAG, Вы писали: BAG>>Если еще есть вопросы — задавайте. NWP>Есть еще вопросы :) NWP>2. Как можно обработать ситуацию, когда превышается указаннй в Web.Config размер, что бы выдать юзеру человеческое сообщение вместо сервер не найден. Наверное только в коде, при определении размера файла выдавать предупреждение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2006, 11:29 |
|
||
|
Загрузка файла c клиента на сервер
|
|||
|---|---|---|---|
|
#18+
NWP 2. Как можно обработать ситуацию, когда превышается указаннй в Web.Config размер, что бы выдать юзеру человеческое сообщение вместо сервер не найден. Если превышает намного ( например файл 100 метров) - то никак. так как до сервера этот файл даже не дойдет. Это на M$ написано bugs не помню какой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2006, 11:34 |
|
||
|
Загрузка файла c клиента на сервер
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, 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>> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2006, 15:48 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=18&tid=1388698]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 275ms |
| total: | 438ms |

| 0 / 0 |
