2011-10-21 7 views
2

Im Не уверен, что это говорит мне? у меня есть это в месте:Internet Explorer не отображает веб-страницу

<system.web> 
    <customErrors mode="Off"/> 

Когда я нажимаю на кнопку, что, как предполагается, чтобы загрузить файл. При этом я получаю ошибку, перечисленную выше. Я работаю на своей локальной машине. Я пытаюсь отладить его, и я получаю ошибку, а не точку останова. Я положил строку «привет», думая, что пытается оценить оператор «если», прежде чем делать свою точку останова. Все еще не удается и не уверен, почему.

protected void btnUpload_Click(object sender, EventArgs e) 
{ 
    string a = "hello"; 
    if (FuQuote.HasFile) 
    { 
     string path = "~/Quotes/" + FuQuote.FileName; 
     FuQuote.SaveAs(MapPath(path)); 
    } 
} 

Эта проблема может быть вызвана различными вопросами, в том числе:

  • Интернет-соединение было потеряно.
  • Веб-сайт временно недоступен.
  • Сервер доменных имен (DNS) недоступен.
  • У сервера доменных имен (DNS) нет списка для домена веб-сайта.
  • Возможно, на адрес может быть ошибка ввода.
  • Если это HTTPS-адрес (безопасный), нажмите «Сервис», выберите «Свойства обозревателя», нажмите «Дополнительно» и убедитесь, что протоколы SSL и TLS включены в разделе безопасности в разделе .
+1

Я просто понял, что он имеет какое-то отношение к элементу управления FileUpload. Если я просто нажимаю на кнопку для кода, который я разместил, давая ему файл, я попал в точку останова. если я использую элемент управления и выбираю файл, а затем нажмите кнопку, с которой он не работает. – StephanM

+0

Что такое вывод 'FuQuote.FileName'? Если моя память служит мне правильно, не возвращает ли полный путь к файлу? –

+0

да, вы правы, он помещает полный путь в текст, который вы видите. но он не выполняет фактическую загрузку. код, который у меня есть на кнопке, должен сделать это. Но, похоже, это не вызов функции. – StephanM

ответ

4

Какое у вас значение maxRequestLength, установленное в вашем web.config? Вероятно, вы выбираете файл, размер которого больше значения maxRequestLength.

<system.web> 
    <httpRuntime maxRequestLength="4096"/> 
</system.web> 
+0

Исправлено имя свойства, я имел в виду maxRequestLength, а не httpRequest. maxRequestLength по умолчанию - 4096 КБ (4 МБ) – mccrager

+0

У меня сейчас нет настроек для этого. – StephanM

+0

См. Этот пост также http://stackoverflow.com/questions/7804622/how-to-upload-content-more-than-2-mbs-on-website-created-using-asp-net-4-0/7804670 # 7804670 – Prasanth

0

FileName свойство контроля загрузки возвращает полный путь к файлу. Вам нужно проанализировать имя файла как часть вашей логики загрузки. Я думаю, вам также нужно использовать FuQuote.PostedFile.FileName.

Импорт System.IO имен и сделать это:

string path = String.Format("~/Quotes/{0}", Path.GetFileName(FuQuote.PostedFile.FileName)); 

FuQuote.SaveAs(Server.MapPath(path)); 
+0

Все хорошо и хорошо, но я не верю, что добираюсь до этого момента. Если я изменю каталоги в элементе управления загрузкой, тогда вызов функции завершится неудачно, когда я нажму кнопку. Таким образом, я неспел, чтобы понять, действительно ли FuQuote.HasFile = true – StephanM

+0

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

+0

Это все на одной машине VS2010. его почти как будто он теряется, когда я ищу файл для загрузки. Если я не ищу, это сработает. почти так же, как это может изменить структуру каталогов под обложками для всей веб-страницы, и она теряется. – StephanM

2

Максимальная длина запроса создает проблемы для вас. По умолчанию максимальный разрешенный размер загрузки файлов составляет 4 МБ. Если вы попытаетесь загрузить файл с более высоким размером, соединение будет сброшено и не достигнет кода «HasFile». Проверьте размер файла, который вы пытались загрузить, и попробуйте с меньшим файлом. Вы можете увеличить ограничение размера файла, добавив

<configuration> 
    <system.web> 
    <httpRuntime maxRequestLength="SIZE" /> 
    </system.web> 
</configuration> 

Теги и будут там по умолчанию. Если он есть в web.config, добавьте в него строку. РАЗМЕР должен быть заменен лимитом размера.

ПРИМЕЧАНИЕ: размер вводится в КБ.

Кроме того, всегда лучше писать такой код внутри блока try-catch. Существует n-число возможностей для исключения.

protected void btnUpload_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     string a = "hello"; 
     if (FuQuote.HasFile) 
     { 
      string path = "~/Quotes/" + FuQuote.FileName; 
      FuQuote.SaveAs(MapPath(path)); 
     } 
    }catch(Exception ex) 
    { 
     // Exception handling code goes here. 
    } 
} 
Смежные вопросы