ब्राउज़र में Azure बूँद छवि फ़ाइल दिखाएँ और डाउनलोड न करें

Aug 16 2020

यह सवाल कुछ समय पहले पूछा गया है। मुझे उम्मीद है कि उत्तर आज अलग है।

  • 3 साल पहले - एज़्योर स्टोरेज फ़ाइलें ब्राउज़र में डाउनलोड करने के लिए मजबूर करती हैं

मैं एक वेब साइट के लिए छवियों (jpg) को बचाने के लिए Azure बूँद भंडारण का उपयोग कर रहा हूँ। मैं अपने <img>टैग में फ़ाइलों को सीधे लिंक कर रहा हूं और यह बहुत अच्छा काम कर रहा है (अनाम पहुंच सक्षम है)। समस्या यह है कि यदि उपयोगकर्ता छवि पर क्लिक करता है (जो सीधे फ़ाइल से लिंक होता है) तो वे इसे डाउनलोड करने के लिए मजबूर होते हैं और इसे ब्राउज़र में नहीं देख सकते।

क्या ब्लॉब स्टोरेज के लिए हेडर सेट करने का एक तरीका है जो इसे सीधे ब्राउज़र में देखने की अनुमति देता है और डाउनलोड को मजबूर नहीं करता है।

अपडेट 1:

इसके आधार पर मैं इसे डाउनलोड करने के बजाय एज़्योर ब्लॉब स्टोरेज से एक छवि कैसे देख सकता हूं? और इसhttps://social.msdn.microsoft.com/Forums/windowsapps/en-US/b8759195-f490-420b-a587-2bb614366ad2/embedding-images-from-blob-storage-in-ssrs-report-does-not-work

मैंने पाया कि मैं सामग्री प्रकार सेट नहीं कर रहा हूं, जिससे समस्या हो रही है। मुझे इसे सेट करने की आवश्यकता है "image/jpeg"। Im यकीन है कि नहीं है, लेकिन यह कैसे करना है। यह वह कोड है जिसका उपयोग मैं इमेज स्टोर करने के लिए कर रहा हूं।

using Microsoft.Azure.Storage.Blob

/// <summary>
/// Save a file to azure blob storage.
/// </summary>
/// <param name="name">Name of file</param>
/// <param name="file">filestream</param>
/// <param name="ct">Cancellationtoken</param>
public async Task<bool> SaveFile(Stream fileStream, string fileName, CancellationToken ct)
{
   CloudBlockBlob cloudBlockBlob = _blobContainer.GetBlockBlobReference(fileName);

   fileStream.Position = 0;
   await cloudBlockBlob.UploadFromStreamAsync(fileStream, ct);

   return true;
}

मुझे इस पर किसी भी प्रकार की ".Content", या "प्रकार" संपत्ति नहीं मिली है। खुदाई करते रहेंगे।

अद्यतन 2: समाधान मिल सकता है:

cloudBlockBlob.Properties.ContentType = "image/jpg";

परिक्षण

अद्यतन 3: यह किया है। छवियों और पीडीएफ के लिए उचित सामग्री प्रकार सेट करने के लिए इसका उपयोग करना और वे अब ब्राउज़र में देखने योग्य हैं।

if (fileName.EndsWith(".jpg"))
{
    cloudBlockBlob.Properties.ContentType = "image/jpg";
}
else if (fileName.EndsWith(".pdf"))
{
    cloudBlockBlob.Properties.ContentType = "application/pdf";
}

जवाब

3 JensB Aug 16 2020 at 03:42

विवरण के लिए प्रश्न देखें। लेकिन सामग्री प्रकार सेट करने के साथ किया जा सकता है:

cloudBlockBlob.Properties.ContentType = "image/jpg";