none
сохранение изображения из листа sharepoint 2010 клиенту RRS feed

  • Вопрос

  • Здравствуйте, никак не могу найти как сохранить изображение по Guid из листа Sharepoint 2010 . Мне нужно чтобы при нажатии на ссылку download загружалась данная картинка на клиент. 

    if(Request.Params["docid"]!=null) //получаю guid из адресной строки
                 {
                     string s = Request.QueryString["docid"].ToString();
                     SPSite osite = SPContext.Current.Web.Site;
                     SPWeb oweb = osite.RootWeb;
                     SPList olist = oweb.Lists["Фотогалереи"];
                     Guid g=new Guid(s); 
                     SPListItem splist = olist.GetItemByUniqueId(g);
                     splist.File.SaveBinary() // вот тут никак не могу понять(и найти) как передать картинку чтобы всплывало окно с предложением сохранить ее на клиенте 

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

    Спасибо за помощь!


    • Изменено Dmitriy St 21 мая 2013 г. 9:39

Ответы

  • Задача решена !

     Response.ContentType = "Image/jpeg";
                     Response.AddHeader("Content-Disposition", "attachment; filename=" + nameImage);
                     var buffer = splistItem.File.OpenBinary();
                     HttpContext.Current.Response.OutputStream.Write(buffer, 0, buffer.Count());

    • Помечено в качестве ответа Dmitriy St 21 мая 2013 г. 11:35

Все ответы

  • добрый день.

    посмотрите SaveFileDialog - класс

    Модератор
  • добрый день.

    посмотрите SaveFileDialog - класс

    ммм...SaveFileDialog - класс - это Виндовс форм. это не то... у меня то темболее веб проект
  •             NameValueCollection imageExtensions = new NameValueCollection();
                FileInfo fi = new FileInfo(Server.MapPath(path));
                imageExtensions.Add(".jpg", "image/jpeg");
                imageExtensions.Add(".gif", "image/gif");
                imageExtensions.Add(".png", "image/png");
                if (imageExtensions.AllKeys.Contains(fi.Extension))
                {
                    Response.ContentType = imageExtensions.Get(fi.Extension);
                    Response.AppendHeader("Content-Disposition", "attachment; filename=" + fi.Name);
                    Response.TransmitFile(fi.FullName);
                    Response.End();
                }

    он сохраняет картинку на машине клиента но картинка урезана (весит 62кб из 3 мб)

    В чем может быть проблема? может мне нужно использовать что нибудь другое?

  • Задача решена !

     Response.ContentType = "Image/jpeg";
                     Response.AddHeader("Content-Disposition", "attachment; filename=" + nameImage);
                     var buffer = splistItem.File.OpenBinary();
                     HttpContext.Current.Response.OutputStream.Write(buffer, 0, buffer.Count());

    • Помечено в качестве ответа Dmitriy St 21 мая 2013 г. 11:35
  • Дмитрий,

    Спасибо за то, что Вы поделились решением!


    Уважаемые участники форума. У меня к Вам просьба: если какой-нибудь из ответов помог Вам решить Вашу проблему, пожалуйста, не забывайте отмечать его. Таким образом, Вы поможете и другим пользователям, у которых возникла схожая проблема! Спасибо!

    Модератор