Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > ASP.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.04.2015, 21:05   #1
linkoln_7
Форумчанин
 
Регистрация: 04.03.2013
Сообщений: 164
По умолчанию Вывод изображения

Здравствуйте,загружаю на сервер картинки с помощью ajax.Подскажите, пожалуйста,как их вывести в определенный div.Заранее спасибо.
linkoln_7 вне форума Ответить с цитированием
Старый 24.04.2015, 23:12   #2
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

В общем случае, если файлы загружаются в специальную папку и пути к картинкам прописываются, например, в БД, то изображения можно без труда вывести в тег img внутри целевого div'а с помощью Repeater или формирования строки с разметкой и её последующей передачей в ViewData (MVC). Эти 2 способа я привёл просто как пример.
Для того чтобы не гадать и ответить более конкретно нужно знать хотя бы на чём сделана страница (Web Forms или MVC) и как изображения хранятся на сервере.
Streletz вне форума Ответить с цитированием
Старый 25.04.2015, 00:53   #3
linkoln_7
Форумчанин
 
Регистрация: 04.03.2013
Сообщений: 164
По умолчанию

Большое спасибо,что откликнулись.
Страница сделана с помощь web forms ,изображения загружаются в папку img на сервер.Мне нужно вывести изображения из папки,чье имя начинается на "image".
linkoln_7 вне форума Ответить с цитированием
Старый 25.04.2015, 01:12   #4
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Сообщение от linkoln_7 Посмотреть сообщение
Страница сделана с помощь web forms ,изображения загружаются в папку img на сервер.Мне нужно вывести изображения из папки,чье имя начинается на "image".
Вывести в этот div подряд или всё-таки по определённому критерию?
Если подряд, то вполне может сгодиться и Repeater. Вот несколько примеров работы с ним: ASP.NET Web Forms - The Repeater Control.
Streletz вне форума Ответить с цитированием
Старый 25.04.2015, 01:25   #5
linkoln_7
Форумчанин
 
Регистрация: 04.03.2013
Сообщений: 164
По умолчанию

а только так можно?просто тут VB в примере.
Только вот тут еще вопрос,я загружаю ajaxом и мне нужен вывод без перезагрузки ,это возможно сделать?
linkoln_7 вне форума Ответить с цитированием
Старый 25.04.2015, 01:28   #6
linkoln_7
Форумчанин
 
Регистрация: 04.03.2013
Сообщений: 164
По умолчанию

находил такой вариант,но он не работает
Код:
 if (!this.IsPostBack)
    {
        foreach (var file = System.IO.Directory.EnumerateFiles(this.Context.Current.Server.MapPath("~/images/")))
        {
            var image = new System.Web.UI.WebControls.Image();
            image.ImageUrl = "~/img/" + file;
            // setup other image properties
            this.Controls.Add(image);
        }
    }
на foreach ругается
linkoln_7 вне форума Ответить с цитированием
Старый 25.04.2015, 01:38   #7
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Сообщение от linkoln_7 Посмотреть сообщение
Только вот тут еще вопрос,я загружаю ajaxом и мне нужен вывод без перезагрузки ,это возможно сделать?
Полностью без перезагрузки нет. Как вариант, делайте вывод тоже через AJAX.
Цитата:
Сообщение от linkoln_7 Посмотреть сообщение
на foreach ругается
foreach написан не правильно. Поэтому и ругается.
Код:
foreach (var file in System.IO.Directory.EnumerateFiles(this.Context.Current.Server.MapPath("~/images/")))
Вместо = должно быть in.
Streletz вне форума Ответить с цитированием
Старый 25.04.2015, 01:47   #8
linkoln_7
Форумчанин
 
Регистрация: 04.03.2013
Сообщений: 164
По умолчанию

Если Вас не затруднит,подскажите как сделать вывод ajax ,вот код загрузки
Код:
 $(document).ready(function () {
        $("#Button1").click(function (evt) {
            var fileUpload = $("#FileUpload1").get(0);
            var files = fileUpload.files;

            var data = new FormData();
            for (var i = 0; i < files.length; i++) {
                data.append(files[i].name, files[i]);
            }

            var options = {};
            options.url = "fileuploadHandler.ashx";
            options.type = "POST";
            options.data = data;
            options.contentType = false;
            options.processData = false;
            options.success = function (result) { alert(result); };
            options.error = function (err) { alert(err.statusText); };

            $.ajax(options);

            evt.preventDefault();
        });
    });
fileuploadHandler.ashx
Код:
<%@ WebHandler Language="C#" Class="fileuploadHandler" %>

using System;
using System.Web;

public class fileuploadHandler : IHttpHandler {
    
    public void ProcessRequest (HttpContext context) {


        if (context.Request.Files.Count > 0)
        {
            HttpFileCollection files = context.Request.Files;
            for (int i = 0; i < files.Count; i++)
            {
                HttpPostedFile file = files[i];
                string fname = context.Server.MapPath("~/img/" + "111"+file.FileName);
                file.SaveAs(fname);
            }
        }
        context.Response.ContentType = "text/plain";
        context.Response.Write("File(s) Uploaded Successfully!");
        
        
        
        
    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }

}
Код:
 <form id="form1" runat="server">
<asp:FileUpload ID="FileUpload1" runat="server" Multiple="Multiple" />
<br />
<br />
<asp:Button ID="Button1" runat="server" Text="Upload Selected File(s)" />
</form>
linkoln_7 вне форума Ответить с цитированием
Старый 25.04.2015, 03:07   #9
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Могу подсказать идею.
После добавления файлов сразу отправьте второй AJAX запрос и уже на основании его результатов обновляйте div с картинками. По хорошему, с сервера нужно получить только пути к файлам.
С UpdatePanel в Вашем случае, скорее всего, лучше не связываться, хотя реализация с его использованием проще. У Вас AJAX работает на JQuery, а он иногда конфликтует с UpdatePanel.

Последний раз редактировалось Streletz; 25.04.2015 в 03:17.
Streletz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод изображения n3sh JavaScript, Ajax 12 11.12.2013 03:26
Вывод изображения на экран garikul ASP.NET 0 01.11.2013 13:09
Вывод изображения. djedai PHP 6 22.04.2013 16:22
вывод изображения асемблер eXen_fm Фриланс 3 07.06.2010 09:55
BitBlt, вывод изображения zotox Win Api 5 22.04.2010 21:43