سؤال

أنا أعمل مع مواقع ويب مختلفة في ASP.NET. في المشروع الأول، قمت بتحميل بعض الصور إلى مجلد معين ضمن جذر المشروع وحفظ اسم الملف فقط في قاعدة البيانات، الآن أحاول عرض هذه الصور في بعض الصفحة من المشروع الثاني، أعرف اسم الملف من قاعدة البيانات والصورة مجلد كبات مطلق لكنني لم أتمكن من عرض الصورة، حتى اعتقدت عند النظر في Firebug الصورة SRC صحيحة src="D:/MyFolder/image.jpg" لا يتم عرض الصورة، ربما لأنه لا يشير في الدليل الصحيح. لقد حاولت أيضا استخدام Server.mappath ثم موقعي D ولكن لا يوجد أي نجاح.

أنا متأكد من أن شخصا ما واجه نفس الموقف من قبل وكان يأمل حقا في الحصول على بعض تلميح لإدارة هذا. شكرا لكم مقدما

هل كانت مفيدة؟

المحلول

لقد وجدت حلاي، غريب لكنني لم أمسك به من قبل. الصور التي تم تحميلها تحت مشروع يمكن الوصول إليها دائما باستخدام عنوان URL للمشروع http://www.yourwebsite.com/images/photo.png الآن في المشروع الثاني، يمكنك استخدام الصور المرجعية باستخدام عنوان URL هذا وتزلق اسم الملف الذي أقوم بتخزينه في قاعدة البيانات. أعتقد أن هذا هو أفضل حل ودون تغيير أمان الوصول إلى التعليمات البرمجية التي أعتقد أنها يمكن أن تجلب مشاكل أخرى معها. على أي حال شكرا لك يا رفاق.

نصائح أخرى

إذا كنت ترغب في عرض الصورة غير الموجودة في مشروعك (أعني أنه موجود في مشروع آخر أو محرك أقراص آخر)، فما عليك سوى إنشاء الدليل الظاهري في IIS

  1. انتقل إلى "تشغيل"، النوع inetmgr
  2. انقر بزر الماوس الأيمن على مشروعك وإضافة الدليل الظاهري
  3. إعطاء اسم الاسم المستعار والمسار بحيث يعمل مثل المجلد في مشروعك

لا أعتقد أنه يمكنك تقديم ملفات خارج مسار التطبيق الخاص بك افتراضيا. يطلق عليه رمز الوصول إلى التعليمات البرمجية. يمكنك قراءة ذلك هنا:
http://msdn.microsoft.com/en-us/library/930b76w0.aspx.

يمكنك إصلاح هذا عن طريق تغيير مستوى الثقة الخاص بك إلى أعلى في Web.config:
http://msdn.microsoft.com/en-us/library/tkscy493.aspx.

لن أوصي بهذا في أي موقع يمكن الوصول إليه خارجيا. في الواقع، اعتمادا على كيفية استضافة طلبك / حيث يمكنك استضافة طلبك، قد يكون هذا الخيار مقيدا.

يمكنك فقط "الارتباط" بالملفات الموجودة بالنسبة إلى نفس المشروع أو يتم استضافتها على موقع آخر عبر عنوان URL المطلق.

إذا كنت ترغب في خدمة الملفات خارج التطبيق / موقع الويب (على القرص أو في قاعدة بيانات)، فستحتاج إلى إنشاء آلية تحصل على الملف وكتابته الثنائية على المتصفح، مما يؤدي إلى إعداد نوع MIME وما إلى ذلك. httphandler.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top