Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Загрузка Blob данных в хранилищеСодержание книги
Поиск на нашем сайте
3. private void SaveImage(string id, string name, string description, 4. string tags, string fileName, string contentType, byte[] data) 5. { 6. // Create a blob in container and upload image bytes to it 7. var blob = this.GetContainer().GetBlobReference(name); 8. 9. blob.Properties.ContentType = contentType; 10. 11. // Create some metadata for this image 12. var metadata = new NameValueCollection(); 13. metadata["Id"] = id; 14. metadata["Filename"] = fileName; 15. metadata["ImageName"] = String.IsNullOrEmpty(name)? "unknown": name; 16. metadata["Description"] = String.IsNullOrEmpty(description)? "unknown": description; 17. metadata["Tags"] = String.IsNullOrEmpty(tags)? "unknown": tags; 18. 19. // Add and commit metadata to blob 20. blob.Metadata.Add(metadata); 21. blob.UploadByteArray(data); }
23.protected void upload_Click(object sender, EventArgs e) 24. { 25. if (imageFile.HasFile) 26. { 27. status.Text = "Inserted [" + imageFile.FileName + "] - 28. Content Type [" + imageFile.PostedFile.ContentType + "] - 29. Length [" + imageFile.PostedFile.ContentLength + "]"; 30. 31. this.SaveImage( 32. Guid.NewGuid().ToString(), 33. imageName.Text, 34. imageDescription.Text, 35. imageTags.Text, 36. imageFile.FileName, 37. imageFile.PostedFile.ContentType, 38. imageFile.FileBytes 39.); 40. 41. RefreshGallery(); 42. } 43. else 44. status.Text = "No image file"; }
Извлечение метаданных для Blob в хранилище
3. protected void OnBlobDataBound(object sender, ListViewItemEventArgs e) 4. { 5. if (e.Item.ItemType == ListViewItemType.DataItem) 6. { 7. var metadataRepeater = e.Item.FindControl("blobMetadata") as Repeater; 8. var blob = ((ListViewDataItem)(e.Item)).DataItem as CloudBlob; 9. 10. // If this blob is a snapshot, rename button to "Delete Snapshot" 11. if (blob!= null) 12. { 13. if(blob.SnapshotTime.HasValue) 14. { 15. var delBtn = e.Item.FindControl("deleteBlob") as LinkButton; 16. if (delBtn!= null) delBtn.Text = "Delete Snapshot"; 17. 18. var snapshotBtn = e.Item.FindControl("SnapshotBlob") as LinkButton; 19. if (snapshotBtn!= null) snapshotBtn.Visible = false; 20. } 21. 22. if (metadataRepeater!= null) 23. { 24. //bind to metadata 25. metadataRepeater.DataSource = from key in blob.Metadata.AllKeys 26. select new 27. { 28. Name = key, 29. Value = blob.Metadata[key] 30. }; 31. metadataRepeater.DataBind(); 32. } 33. } 34. } }
Удаление Blob из хранилища
2. <div class="item"> 3. <ul style="width:40em;float:left;clear:left" > 4. <asp:Repeater ID="blobMetadata" runat="server"> 5. <ItemTemplate> 6. <%# Eval("Name") %><span><%# Eval("Value") %></span> 7. </ItemTemplate> 8. </asp:Repeater> 9. 10. <asp:LinkButton ID="deleteBlob" 11. OnClientClick="return confirm('Delete image?');" 12. CommandName="Delete" 13. CommandArgument='<%# Eval("Uri")%>' 14. runat="server" Text="Delete" oncommand="OnDeleteImage" /> 15. 16. </ul> 17. <img src="<%# Eval("Uri") %>" alt="<%# Eval("Uri") %>" style="float:left"/> </div>
19.protected void OnDeleteImage(object sender, CommandEventArgs e) 20. { 21. try 22. { 23. if (e.CommandName == "Delete") 24. { 25. var blobUri = (string)e.CommandArgument; 26. var blob = this.GetContainer().GetBlobReference(blobUri); 27. 28. blob.DeleteIfExists(); 29. 30. RefreshGallery(); 31. } 32. } 33. catch (StorageClientException se) 34. { 35. status.Text = "Storage client error: " + se.Message; 36. } 37. catch (Exception) { } }
Копирование Blob
2. <div class="item"> 3. <ul style="width:40em;float:left;clear:left" > 4. <asp:Repeater ID="blobMetadata" runat="server"> 5. <ItemTemplate> 6. <%# Eval("Name") %><span><%# Eval("Value") %></span> 7. </ItemTemplate> 8. </asp:Repeater> 9. 10. <asp:LinkButton ID="deleteBlob" 11. OnClientClick="return confirm('Delete image?');" 12. CommandName="Delete" 13. CommandArgument='<%# Eval("Uri")%>' 14. runat="server" Text="Delete" oncommand="OnDeleteImage" /> 15. <asp:LinkButton ID="CopyBlob" 16. OnClientClick="return confirm('Copy image?');" 17. CommandName="Copy" 18. CommandArgument='<%# Eval("Uri")%>' 19. runat="server" Text="Copy" oncommand="OnCopyImage" /> 20. 21. 22. </ul> 23. <img src="<%# Eval("Uri") %>" alt="<%# Eval("Uri") %>" style="float:left"/> </div>
25.protected void OnCopyImage(object sender, CommandEventArgs e) 26. { 27. if (e.CommandName == "Copy") 28. { 29. // Prepare an Id for the copied blob 30. var newId = Guid.NewGuid(); 31. 32. // Get source blob 33. var blobUri = (string)e.CommandArgument; 34. var srcBlob = this.GetContainer().GetBlobReference(blobUri); 35. 36. // Create new blob 37. var newBlob = this.GetContainer().GetBlobReference(newId.ToString()); 38. 39. // Copy content from source blob 40. newBlob.CopyFromBlob(srcBlob); 41. 42. // Explicitly get metadata for new blob 43. newBlob.FetchAttributes(new BlobRequestOptions{BlobListingDetails = BlobListingDetails.Metadata}); 44. 45. // Change metadata on the new blob to reflect this is a copy via UI 46. newBlob.Metadata["ImageName"] = "Copy of \"" + newBlob.Metadata["ImageName"] + "\""; 47. newBlob.Metadata["Id"] = newId.ToString(); 48. newBlob.SetMetadata(); 49. 50. // Render all blobs 51. RefreshGallery(); 52. } }
Получение снимков Blob
2. <div class="item"> 3. <ul style="width:40em;float:left;clear:left" > 4. <asp:Repeater ID="blobMetadata" runat="server"> 5. <ItemTemplate> 6. <%# Eval("Name") %><span><%# Eval("Value") %></span> 7. </ItemTemplate> 8. </asp:Repeater> 9. 10. <asp:LinkButton ID="deleteBlob" 11. OnClientClick="return confirm('Delete image?');" 12. CommandName="Delete" 13. CommandArgument='<%# Eval("Uri")%>' 14. runat="server" Text="Delete" oncommand="OnDeleteImage" /> 15. <asp:LinkButton ID="CopyBlob" 16. OnClientClick="return confirm('Copy image?');" 17. CommandName="Copy" 18. CommandArgument='<%# Eval("Uri")%>' 19. runat="server" Text="Copy" oncommand="OnCopyImage" /> 20. <asp:LinkButton ID="SnapshotBlob" 21. OnClientClick="return confirm('Snapshot image?');" 22. CommandName="Snapshot" 23. CommandArgument='<%# Eval("Uri")%>' 24. runat="server" Text="Snapshot" oncommand="OnSnapshotImage" /> 25. 26. </ul> 27. <img src="<%# Eval("Uri") %>" alt="<%# Eval("Uri") %>" style="float:left"/> </div>
29.protected void OnSnapshotImage(object sender, CommandEventArgs e) 30. { 31. if (e.CommandName == "Snapshot") 32. { 33. // Get source blob 34. var blobUri = (string) e.CommandArgument; 35. var srcBlob = this.GetContainer().GetBlobReference(blobUri); 36. 37. // Create a snapshot 38. var snapshot = srcBlob.CreateSnapshot(); 39. 40. status.Text = "A snapshot has been taken for image blob:" + srcBlob.Uri + " at " + snapshot.SnapshotTime; 41. 42. RefreshGallery(); 43. } }
|
||||
Последнее изменение этой страницы: 2016-12-12; просмотров: 267; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.128.202.230 (0.01 с.) |