ASP.net - Несколько Загружают с jQuery, Несколько Регистрируют Плагин Загрузки

потребовалось некоторое время, чтобы истолковать документы Spring, но я наконец-то туда попал. Мое решение:

    SimpleJdbcCall simpleJdbcCall = new SimpleJdbcCall(jdbcTemplate)
                                                      .withProcedureName("DistinctRunNames")
                     .withoutProcedureColumnMetaDataAccess();
    simpleJdbcCall.addDeclaredParameter(new SqlParameter("environment", Types.VARCHAR));
    simpleJdbcCall.addDeclaredParameter(new SqlParameter("username", Types.VARCHAR));
    simpleJdbcCall.addDeclaredParameter(new SqlParameter("test_suite", Types.VARCHAR));
   SqlParameterSource parameters = new MapSqlParameterSource().addValue("environment", environment)
                                                    .addValue("username", username).addValue("test_suite", testSuite);
    Map map = simpleJdbcCall.returningResultSet("runnames", new ParameterizedRowMapper<RunNameBean>() {
           public RunNameBean mapRow(ResultSet rs, int rowNum) throws SQLException {
                  RunNameBean runNameBean = new RunNameBean();
       runNameBean.setName(rs.getString("runname"));
       return runNameBean;
       }
          }).execute(parameters);
    return (List) map.get("runnames");

Были проблемы с ожидаемыми параметрами по сравнению с фактическими, пришлось разбить объект simpleJdbcCall. Карты результаты в список красиво. Спасибо за ответы, помог мне узнать о Spring mapping.

14
задан Community 23 May 2017 в 10:32
поделиться

4 ответа

Это было немного, так как я сделал такую вещь в.NET, но после того как Вы начинаете клонировать исходные данные формы динамично, я думаю, что необходимо выйти в Запрос. Сформируйте и найдите отправленные значения вручную. Я описал код jQuery для клонирования немного (нефайл) исходные данные с последовательными идентификаторами здесь. Пока у Вас есть уникальные идентификаторы, можно выполнить цикл, чтобы видеть если Запрос. Форма ["MultiFile1_F" + счетчик] существует, и пойдите оттуда.

2
ответ дан 1 December 2019 в 14:22
поделиться

Две вещи проверить:

  • Удостоверьтесь, что Ваша форма имеет enctype = "multipart/form-data" набор атрибута. Это требуется, чтобы включать загрузки.
  • Удостоверьтесь, что все исходные данные файла имеют и идентификатор и называют набор атрибутов. По некоторым причинам, если Вы не устанавливаете обоих, странные вещи происходят.

Кроме того, runat = "сервер" не должен иметь никакого отношения ли Запрос. Работы файлов или не - это - больше проблема браузера, на самом деле отправляющего файлы.

5
ответ дан 1 December 2019 в 14:22
поделиться

Этот плагин jQuery давал каждому сгенерированному элементу управления вводом тот же самый атрибут имени.

Поэтому файлы не отправляли.

Я создал свое собственное решение JavaScript.

Я отправлю ссылку на код в комментарии.

Править

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

1.) Включайте библиотеку jQuery по веб-форме:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript" />

2.) Сошлитесь на плагин файла нескольких на веб-форме (Загрузите его здесь):

<script src="jquery.MultiFile.pack.js" type="text/javascript">

3.) Добавьте вход файла на своей веб-форме с классом = "много":

<input type="file" class="multi" />

4.) Выполните некоторый код или назовите метод как это на представлении формы:

    void SendMail(string from, string to, string subject, string body, string smtpServer)
    {
        // create mail message
        MailMessage mail = new MailMessage(from, to, subject, body);

        // attach posted files
        for (int i = 0; i < Request.Files.Count; i++)
        {
            HttpPostedFile file = Request.Files[i];
            mail.Attachments.Add(new Attachment(file.InputStream, file.FileName));
        }

        //send email
        new SmtpClient(smtpServer).Send(mail);
    }

Это - все, что я должен был сделать для присоединения нескольких файлов к электронному письму, посланному от aspx страницы.

Если Вы хотите увеличить общий размер файлов, которые могут быть загружены, добавить это к Вашему web.config файлу:

<system.web>
    <httpRuntime executionTimeout="240" maxRequestLength="30720"/>
</system.web>

executionTimeout измеряется в секундах, и maxRequestLength измеряется в килобайтах. В этом примере запрос будет тайм-аут после 4 минут и позволит запрос 30 МБ.

5
ответ дан 1 December 2019 в 14:22
поделиться

Я настоятельно рекомендую Uploadify как средство для загрузки нескольких файлов. Он использует jquery и flash, чтобы позволить пользователю загружать сразу несколько файлов с помощью Ctrl + щелчок по всем нужным файлам. Затем он отображает очередь загрузки файлов и удаляет файл из очереди по завершении. Он также позволяет указать, какое расширение разрешить пользователю загружать, что избавляет вас от необходимости выполнять проверку расширения.

РЕДАКТИРОВАТЬ:
Если вы не хотите использовать flash, Ajax Upload тоже работает очень хорошо. Если у пользователей сайта моей компании нет нужной версии flash, которая лучше всего работает с uploadify, я переключаюсь на Ajax Upload. Они оба мне подходят.

2
ответ дан 1 December 2019 в 14:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: