2010-03-22 16 views
5

में हल नहीं हो रही हैं, मैं एक एएसपी वेब एप्लिकेशन पर काम कर रहा हूं, जिसमें उपयोगकर्ता व्यक्ति की छवि सहित किसी व्यक्ति का विवरण पंजीकृत करता है। विवरण/छवि का फ़ाइल नाम डीबी में वास्तविक छवि को संग्रहीत करने के बजाय NVARCHAR कॉलम में संग्रहीत छवि फ़ाइल नाम के साथ SQL डेटाबेस में संग्रहीत किया जाता है।छवियां एएसपी वेबएप (सी #)

मैंने एक निर्देशिका सी: \ छवियां बनाई हैं जिनके लिए छवि फ़ाइलों को एप्लिकेशन द्वारा संग्रहीत किया जाएगा। यह एप्लिकेशन सही ढंग से काम करता है जहां तक ​​यह छवियों को इस स्थान पर ले जाता है, लेकिन जब मैं पृष्ठ खोलता हूं जो विवरण/छवि प्रदर्शित करता है तो छवि कभी प्रस्तुत नहीं होती है।

मुझे परियोजना के हिस्से में एक फ़ोल्डर में संग्रहीत छवि रखने के दौरान विकास के दौरान यह दौर मिला, लेकिन सर्वर को प्रोजेक्ट रिलीज करने के बाद, एप्लिकेशन C:\Inetpub\wwwroot\ के भीतर किसी भी निर्देशिका में छवि को सहेजने की अनुमति देने से इंकार कर देता है ।

तो मुझे यह पता लगाना चाहिए कि जब वे प्रोजेक्ट के भीतर फ़ोल्डर में संग्रहीत नहीं होते हैं तो छवियां क्यों प्रस्तुत नहीं की जाएंगी।

// CandidatePhoto filename retrieved from DB. 

CandidateImage.ImageUrl = "C:\\Images\\" + CandidatePhoto; 
:

img id="ctl00_MainContent_CandidateImage" src="C:\Images\applicant11.jpg" alt="Candidate Image" style="border-width:1px;border-style:solid;height:208px;width:208px;" 

पेज के पीछे कोड नीचे दिए गए कोड में छवि प्रस्तुत करता है:

मैं HTML पृष्ठ के स्रोत जो भी सही स्थान और फ़ाइल नाम को इंगित करता देख लिया है

क्या किसी के पास कोई विचार है?

चीयर्स!

उत्तर

1

सर्वर पर फ़ोल्डर पर अनुमतियों की जांच करें। आपने इसे अपने देव मशीन से कॉपी कर लिया है, जो आपके कंप्यूटर के लिए अद्वितीय अनुमतियों के साथ है जो दूसरों की पहुंच को सीमित करता है।

+0

छवि लिंक सी: \ – chris

6

जब इस ब्राउज़र पर प्रस्तुत हुई है, आप प्रभावी रूप से यह कह रहे हैं सी पर देखने के लिए: छवि प्रदर्शित करने के लिए ग्राहक की ड्राइव ...

मैं तुम क्यों नहीं बचा सकता है पता नहीं है wwwroot के साथ, यह शायद केवल एक अनुमति समस्या है, और इसे दूर किया जा सकता है, या आप अपनी साइट के भीतर एक आभासी निर्देशिका बना सकते हैं जो आपको छवियों फ़ोल्डर पर इंगित करता है और आपके पृष्ठ में इस वर्चुअल निर्देशिका यूआरएल का उपयोग करता है।

+0

पर इंगित करता है तो अनुमतियां कोई फर्क नहीं पड़ती हैं, अब मैं समझता हूं - मेरी स्थानीय मशीन पर वेबपैप चलाने और स्थानीयहोस्ट का उपयोग कर सर्वर पर चलकर स्वयं को उलझन में डाल दिया। मैंने जितना संभव हो सके अनुमति देने के लिए wwwroot में अनुमतियों को अपडेट किया है और मुझे अभी भी "~/images /" फ़ोल्डर के बारे में कोई त्रुटि नहीं मिली है ... मैं टिंकरिंग जारी रखूंगा और उम्मीद करता हूं कि जब मैं उम्मीद करूँगा तो अपडेट हो जाएगा। – gordonk

+0

@gordonk - तो मुझे लगता है कि आप जो खोज रहे हैं वह सर्वर फ़ोल्डर के लिए भौतिक पथ प्राप्त करने के लिए Server.MapPath ("~/images") है। – Paddy

1

आपकी छवि के साथ समस्या यह है कि आप फ़ाइल के स्थान से संबंधित यूआरएल की बजाय अपने कंप्यूटर पर किसी स्थान का जिक्र कर रहे हैं। ब्राउज़र को छवि प्रस्तुत करने में सक्षम होने के लिए, यह उस छवि के यूआरएल को प्राप्त करने में सक्षम होना चाहिए। आप ब्राउज़र पर प्रभावी रूप से कह रहे हैं कि उपयोगकर्ता कंप्यूटर पर, या सर्वर पर कहीं और

+0

छवि को पीसी पर सर्वर पर निर्दिष्ट ड्राइव पर अपलोड किया गया है, जो सफलतापूर्वक होता है। मैंने अपने प्रश्न में यह स्पष्ट नहीं किया। – gordonk

3

आपकी छवियों को एप्लिकेशन के सापेक्ष /images/bob.jpg जैसा होना चाहिए, ओएस ड्राइव नहीं, भले ही यह है एक आभासी पथ ... लेकिन छवियों को किसी भी मामले में ग्राहक के C:\ ड्राइव पर नहीं होगा।

आप आईआईएस आवेदन/साइट में वर्चुअल निर्देशिका Images/ था, और यह सर्वर पर C:\Images की ओर इशारा किया है तो आपके URL ऐसा दिखाई देगा:

CandidateImage.ImageUrl = "~/Images/" + CandidatePhoto; 

To create a virtual directory like this, see here

1

आप नहीं कर सकते हैं पथ "c: \ images" डालें, क्योंकि जब छवि प्रस्तुत की जाएगी तो ब्राउज़र क्लाइंट मशीन पर छवि की तलाश करेगा।आप इन दो समाधानों में से एक कर सकते हैं:

  1. आप अपनी वेबसाइट पर "/ छवियों" निर्देशिका बनाने और साइट पर सेट कुछ उपयोगकर्ता "का रूप धारण करने के लिए" कर सकते हैं और है कि उपयोगकर्ता उसे करने की अनुमति के लिए अनुमति सेट इस फ़ोल्डर को लिखें। और imageUrl पर आप इस तरह कुछ डाल देंगे: "/images/image01.jpg"।

  2. आप एक ऐसा पृष्ठ बना सकते हैं जो आपके लिए छवि प्रस्तुत करेगा, और पोस्ट या क्वेरीस्ट्रिंग द्वारा छवि की आईडी पास करेगा। कुछ "ImageRender.aspx? आईडी = 123" की तरह कुछ। और पृष्ठ "c: \ images" से छवि लोड करेगा और पृष्ठ की प्रतिक्रिया पर छवि लिखें। और आप ImageURL पर हमेशा "ImageRender.aspx? आईडी = [imageID]" डाल देंगे।

मुझे उम्मीद है कि इससे मदद मिलती है।

1

आपके विचारों के लिए सभी को धन्यवाद।

गॉट वहाँ पढ़ने/लिखने की अनुमति Wwwroot करने के लिए/छवियाँ

साथ सर्वर नाम \ IUSER_SERVERNAME उपयोगकर्ता को जोड़ने फिर सर्वर पर निर्देशिका के लिए छवियों को बचाने के लिए Server.MapPath ("~/छवियों") का उपयोग करके

फिर छवियों को प्रस्तुत करना ("~/images") + उम्मीदवार फोटो जैसा कि मैं पहले था।

फिर से धन्यवाद!

संबंधित मुद्दे