1. Всем пользователям необходимо проверить работоспособность своего электронного почтового адреса. Для этого на, указанный в вашем профиле электронный адрес, в период с 14 по 18 июня, отправлено письмо. Вам необходимо проверить свою почту, возможно папку "спам". Если там есть письмо от нас, то можете не беспокоиться, в противном случае необходимо либо изменить адрес электронной почты в настройках профиля , либо если у вас электронная почта от компании "Интерсвязь" (@is74.ru) вы им долго не пользовались и хотите им пользоваться, позвоните в СТП по телефону 247-9-555 для активации вашего адреса электронной почты.
    Скрыть объявление

Кодинг на ASP под IIS

Тема в разделе "Вебстроительство", создана пользователем Serge, 16 фев 2008.

  1. Serge

    Serge Ословед

    Репутация:
    13.474.289
    Serge, 16 фев 2008
    Разработка веб-приложений с помощью ASP.Net

    ASP.Net - веб-фреймфорк, разработанный компанией Microsoft в 1997-2002 гг. для создания веб-приложений и веб-сервисов с использованием функционала [URL="http://city.is74.ru/forum/index.php?
     
    #1
  2. WormiX

    WormiX

    Репутация:
    124
    WormiX, 16 фев 2008
    вопрос: как организовать передачу файла от клиента серверу? вроде того как на ВГ загружаются аватарки с компьютера пользователя. Делается вроде так: создаётся форма на страницы примерно такого содержания
    Код:
    <form name="form1" enctype="multipart/form-data" method="post" action="upload.asp">
      <label for="file">file</label>
      <input type="file" name="file" id="file">
    </form>
    А как сервер может этот файл принять и сохранить у себя?
     
    #2
  3. WormiX

    WormiX

    Репутация:
    124
    WormiX, 17 фев 2008
    ну сабмит эт само собой :)
    всё-таки как же принять серваком файл?
    содержимое файла передаётся получается по частям, а как их получать? строчка:
    Код:
    Response.write(Request.form('file'));
    ничего не выводит в поток страницы :(
    в аспе есть объкт Stream(ADODB.Stream) может он как-то тут сподобен?
    просто ваще даже не могу представить как это дело происходит. :(
     
    #3
  4. Serge

    Serge Ословед

    Репутация:
    13.474.289
    Serge, 17 фев 2008
    Можно использовать компонент
    System.Web.UI.HtmlControls.HtmlInputFile и его свойством PostedFile

    В обработчик события клика на кнопке добавить примерно такой код

    Код:
    private void btnUpload_ServerClick(object sender, System.EventArgs e)
    
        {
    
          string filename = String.Empty;
    
          FileInfo file = null;
    
    
    
          // make sure file was specified and was found 
    
          filename = txtUpload.PostedFile.FileName.Trim( );
    
          if ((filename.Length > 0) && 
    
              (txtUpload.PostedFile.ContentLength > 0))
    
          {
    
            // get a fileInfo object to simplify extraction of the filename
    
            // from the fully qualified filename
    
            file = new FileInfo(filename);
    
    
    
            // save the file to the local file system
    
            txtUpload.PostedFile.SaveAs(Server.MapPath("uploads") + 
    
                                        "\\" + file.Name);
    
          }
    
        }  // btnUpload_ServerClick
    
     
    #4
  5. WormiX

    WormiX

    Репутация:
    124
    WormiX, 17 фев 2008
    спасиба! :)
    а как-нить без ASP.NETа можно такое реализовать?
     
    #5
  6. WormiX

    WormiX

    Репутация:
    124
    WormiX, 19 фев 2008
    Уважаемый Serge!
    Выложите, пожалуйста, пример страницы с загрузкой файла целиком. Я Асп.нет ваще не знаю толком :sorry:, а с примером , думаю, разберусь!
    Заранее очень благодарен!
     
    #6
  7. Serge

    Serge Ословед

    Репутация:
    13.474.289
    Serge, 19 фев 2008
    вот пример реализации загрузки файла на чистом ASP (правда на бейсике, но разобраться можно).
     
    #7
  8. Serge

    Serge Ословед

    Репутация:
    13.474.289
    Serge, 21 фев 2008
    ASP.NET
    Код:
    Example 15-4. File upload (.aspx)
    <%@ Page Language="vb" AutoEventWireup="false" 
    
             Codebehind="CH15FileUploadCS.aspx.cs" 
    
             Inherits="ASPNetCookbook.CSExamples.CH15FileUploadCS" %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    
    <html>
    
      <head>
    
        <title>File Upload</title>
    
        <link rel="stylesheet" href="css/ASPNetCookbook.css">
    
      </head>
    
      <body leftmargin="0" marginheight="0" marginwidth="0" topmargin="0">
    
        <form id="frmUpload" method="post" runat="server" 
    
              enctype="multipart/form-data">
    
          <table width="100%" cellpadding="0" cellspacing="0" border="0">
    
            <tr>
    
              <td align="center">
    
                <img src="images/ASPNETCookbookHeading_blue.gif">
    
              </td>
    
            </tr>
    
            <tr>
    
              <td class="dividerLine">
    
                <img src="images/spacer.gif" height="6" border="0"></td>
    
            </tr>
    
          </table>
    
          <table width="90%" align="center" border="0">
    
            <tr>
    
              <td align="center">&nbsp;</td>
    
            </tr>
    
            <tr>
    
              <td align="center" class="PageHeading">
    
                File Upload (VB)
    
              </td>
    
            </tr>
    
            <tr>
    
              <td><img src="images/spacer.gif" height="10" border="0"></td>
    
            </tr>
    
            <tr>
    
              <td align="center">
    
                <input id="txtUpload" runat="server" type="file" >
    
              </td>
    
            </tr>
    
            <tr>
    
              <td align="center">
    
                <br />
    
                <input id="btnUpload" runat="server" 
    
                       type="button" value="Upload">
    
              </td>
    
            </tr>
    
          </table>
    
        </form>
    
      </body>
    
    </html>
    
    ------------------------------------
    Example 15-6. File upload code-behind (.cs)
    //----------------------------------------------------------------------------
    
    //
    
    //   Module Name: CH15FileUploadCS.aspx.cs
    
    //
    
    //   Description: This module provides the code behind for the 
    
    //                CH15FileUploadCS.aspx page
    
    //
    
    //****************************************************************************
    
    using System;
    
    using System.IO;
    
    
    
    namespace ASPNetCookbook.CSExamples
    
    {
    
      public class CH15FileUploadCS : System.Web.UI.Page
    
      {
    
        // controls on the form
    
        protected System.Web.UI.HtmlControls.HtmlInputFile txtUpload;
    
        protected System.Web.UI.HtmlControls.HtmlInputButton btnUpload;
    
    
    
        //************************************************************************
    
        //
    
        //   ROUTINE: Page_Load
    
        //
    
        //   DESCRIPTION: This routine provides the event handler for the page 
    
        //                load event.  It is responsible for initializing the 
    
        //                controls on the page.
    
        //------------------------------------------------------------------------
    
        private void Page_Load(object sender, System.EventArgs e)
    
        {
    
          // wire the upload button event handler
    
          this.btnUpload.ServerClick += 
    
            new EventHandler(this.btnUpload_ServerClick);
    
        }  // Page_Load
    
    
    
        //************************************************************************
    
        //
    
        //   ROUTINE: btnUpload_ServerClick
    
        //
    
        //   DESCRIPTION: This routine provides the event handler for the upload
    
        //                button click event.  It is responsible saving the file
    
        //                to the local file system.
    
        //------------------------------------------------------------------------
    
        private void btnUpload_ServerClick(object sender, System.EventArgs e)
    
        {
    
          string filename = null;
    
          FileInfo file = null;
    
    
    
          // make sure file was specified and was found 
    
          filename = txtUpload.PostedFile.FileName.Trim( );
    
          if ((filename.Length > 0) && 
    
              (txtUpload.PostedFile.ContentLength > 0))
    
          {
    
            // get a fileInfo object to simplify extraction of the filename
    
            // from the fully qualified filename
    
            file = new FileInfo(filename);
    
    
    
            // save the file to the local file system
    
            txtUpload.PostedFile.SaveAs(Server.MapPath("uploads") + 
    
                                        "\\" + file.Name);
    
          }
    
        }  // btnUpload_ServerClick
    
      }  // CH15FileUploadCS
    
    }
    
    
     
    #8
  9. ХОМЯЧИЩЕ

    ХОМЯЧИЩЕ Ословед

    Репутация:
    487
    ХОМЯЧИЩЕ, 23 фев 2008
    Люди для Windows Home нуна IIS установочники есть такие???
     
    #9
  10. Serge

    Serge Ословед

    Репутация:
    13.474.289
    Serge, 23 фев 2008
    IIS ставится только на Windows XP Professional из дистрибутива самой винды.
     
    #10
  11. WormiX

    WormiX

    Репутация:
    124
    WormiX, 24 фев 2008
    Респект Serge за выложеный uploader! Подточил и вкрутил его в сайт :yes:
    Искал в инете что-нить на ASP/JScript, наткнулся на утверждение, что яваС не умеет работать с двоичными данными :cry2:
    Но некоторые функции выдернутые из VB (типа InStrB() ) жалуются только на отсутствие объекта ( это как если использовать fromCharCode() вместо someStr.fromCharCode() ). Что наводит на мысли о небезнадёжности JScript!
     
    #11
  12. Бретон

    Бретон Ословед

    Репутация:
    28.297
    Бретон, 10 апр 2008
    как правильно подключать assembly?:idontno:

    мне нужно использовать namespace
    System.Data.OracleClient
    а оно как я понял находится в сборке
    System.Data.OracleClient.dll



    если кидаю dll в папку Bin или просто в папку проекта, то говорит, что такого файла нету :

    <%@AssemblyName="System.Data.OracleClient" %>
    <%@AssemblySrc="System.Data.OracleClient.dll" %>


     
    #12
  13. Serge

    Serge Ословед

    Репутация:
    13.474.289
    Serge, 10 апр 2008
    В Solution Explorer тыкаешь правой кнопкой мыши на проект, выбираешь Add Reference, на закладке .Net выбираешь System.Data.OracleClient и добавляешь в список ссылок проекта.
    После этого его можно использовать в коде напрямую, либо через директиву using. Почему-то некоторые сборки (assembly) подключаются именно таким образом, почему - не разбирался.
     
    #13
  14. Бретон

    Бретон Ословед

    Репутация:
    28.297
    Бретон, 10 апр 2008
    ура!спс большое!:wow:

    правда терь возник другой вопрос:idontno: о подключении к Oracle

    в MSDN написано:
    <add name="OracleConnectionString" connectionString="Data Source=OracleServer1;Persist Security Info=True;Password="******";User ID=User1" providerName="System.Data.OracleClient" />

    я в web.config'е написал:
    <connectionStrings>

    <add name="MyConnection"
    connectionString="Data Source=localhost; Persist
    Security Info=True; Password=1; User ID=1"
    providerName="System.Data.OracleClient" />
    </connectionStrings>

    в aspx файле:
    OracleConnection oconect = new OracleConnection("MyConnection");

    oconect.Open();


    ocommand = new OracleCommand("select pole from table");

    ocommand.Connection = oconect;

    dr = ocommand.ExecuteReader(CommandBehavior.CloseConnection);

    при компиляции выдаёт:
    Формат строки инициализации не соответствует спецификации, начиная с индекса 0.

    [FONT=Arial, Helvetica, Geneva, SunSans-Regular, sans-serif]Описание: Необработанное исключение при выполнении текущего веб-запроса. Изучите трассировку стека для получения дополнительных сведений о данной ошибке и о вызвавшем ее фрагменте кода.

    Сведения об исключении: System.ArgumentException: Формат строки инициализации не соответствует спецификации, начиная с индекса 0.

    Ошибка источника:

    Строка 32: Строка 33: Строка 34: oconect = new OracleConnection("MyConnection");Строка 35: oconect.Open();Строка 36:
    [/FONT]

    чем может быть вызвано? Логин и пароль действительно единицы
     
    #14
  15. Serge

    Serge Ословед

    Репутация:
    13.474.289
    Serge, 10 апр 2008
    Для начала следует помнить, что строка соединения может зависить от особенностей сервера и может отличаться от стандартной.

    Попробуй для проверки указать строку соединения в программном коде, в конструкторе OracleConnection или в его соответствующем свойстве до открытия соединения. Если так заработает, то нужно искать ошибки при чтении строки из конфигурационного файла.
     
    #15
  16. Бретон

    Бретон Ословед

    Репутация:
    28.297
    Бретон, 12 апр 2008
    спс помогло!:)

    если можно , то еше один вопрос:

    простые запросы вроде работают, а вот про хранимую процедуру я не нашёл точного кода в MSDN:idontno:

    я так пытаюся вызвать хранимую процедуру, принимающую одно значение varchar2;
    имя процедуры: Update_Grup;
    первое поле(ключ) для таблице GRUP делает сама, второе поле C_GRUP я ей посылаю:

    cmd = newOracleCommand("UPDATE_GRUP", cnt);
    cmd.CommandType = CommandType.StoredProcedure;

    cmd.Connection.Open();

    cmd.Parameters.AddWithValue("C_GRUP", OracleType.VarChar).Value = "woo";
    //cmd.Parameters.Add("C_GRUP", "woo");


    cmd.ExecuteNonQuery();

    однако при компиляции:

    ORA-06550: line 1, column 7:
    PLS-00306: wrong number or types of arguments in call to 'UPDATE_GRUP'
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored



    Ошибка источника:Строка 56: cmd.Parameters.Add("C_GRUP", "woo");Строка 57: Строка 58: cmd.ExecuteNonQuery();Строка 59: Строка 60:


    может я не так ввожу параметры? однако при cmd.Parameters.Add("C_GRUP", "woo") таже ошибка
     
    #16
  17. Serge

    Serge Ословед

    Репутация:
    13.474.289
    Serge, 12 апр 2008
    число передаваемых параметров и их типы должны совпадать с указанным в хранимой процедуре.

    И еще маленький совет использовать такую конструкцию

    using (OracleConnection conn = new OracleConnection())
    {
    // здесь код
    }

    это гарантирует закрытие соединения при выходе из блока using даже в случае возникновения исключения внутри блока.
     
    #17
  18. Бретон

    Бретон Ословед

    Репутация:
    28.297
    Бретон, 12 апр 2008
    точно.:wow:я кидал имя столбца вместо имени параметра: в примере из книжки они совпадали, вот я и спутал и бился целый день почему же не работает:tears:

    cmd.Parameters.AddWithValue("new_grup", OracleType.VarChar).Value = "woo";

     
    #18
  19. Бретон

    Бретон Ословед

    Репутация:
    28.297
    Бретон, 15 апр 2008
    кто-нить сталкивался с проблемой debug'a:

    расставляю brealpoint'ы, в браузере разрешаю выполнить отладочные скрипты,
    в настройках проекта стоит debug mode

    Однако при запуске проект просто компилируется и не останавливается в breakpoint'ах...

    последняя строчка в output'е:
    The program '[6068] WebDev.WebServer.EXE: Managed' has exited with code 0 (0x0).

    ???
     
    #19
  20. Serge

    Serge Ословед

    Репутация:
    13.474.289
    Serge, 15 апр 2008
    вариант 1 - выполнить Rebuild Solution
    вариант 2 - убедиться, что код с брякпоинтами действительно вызывается.
     
    #20
Загрузка...