الصور الموجودة في مجلد App_Data غير موضح في المتصفح

StackOverflow https://stackoverflow.com/questions/1519790

  •  19-09-2019
  •  | 
  •  

سؤال

عندما أقوم بتعيين خاصية Image URL إلى عنصر تحكم Image ASP الموجود في مجلد App_Data، تظهر الصورة في عرض تصميم الصفحة ولكن ليس في المستعرض.

<form id="form1" runat="server">
<div>
    <asp:Image ID="Image1" runat="server" ImageUrl="~/App_Data/p3.jpg" />
</div>
</form>

يبدو أنها واضحة، لكنها لا تظهر الصورة.

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

المحلول

ال App_Data المجلد هو مجلد خاص محجوز للبيانات مثل ملفات قاعدة البيانات وما إلى ذلك، وسوف ليس قدم أي محتويات على الويب. هذا حسب التصميم، وممتعلة ولا يمكن تغييره (بقدر ما أعرف).

صورك تفعل بالتأكيد لا تنتمي إلى App_Data المجلد الفرعي - ضعها في /images مجلد أو شيء أكثر ملاءمة.

نصائح أخرى

يجب ألا تخزين الصور في App_Data مجلد. يتم حجز هذا الملفات التي يجب ألا تخدمها إلى المستخدم مباشرة، مثل ملفات قاعدة بيانات MDB، إلخ.

سأقوم بإنشاء /Resources أو /Resources/Images مجلد قبالة جذر الموقع.

أنا أعترض. عند إخفاء الصور في مجلد App_data وإنشاء HTTP-HTTLLER تقوم بتأمين صورك ويمكن أن تضيف نص حقوق الطبع والنشر وما إلى ذلك على الصور قبل أن تظهر لهم.

أفعل ذلك عندما يكون لدي صور Highres، فأنا لا أحب أن أحصل على الجميع، وبعد هزيمة http-httleler الصورة ووضعها على بعض copyrigertext. رائعة!

حسنا، الوقت للقيام بالمستحيل ... بينما لا يمكنك تحميل الصور مباشرة من مجلد App_Data، يمكنك كتابة معالج HTTP الخاص بك الذي سيقرأ ملف الصورة من مجلد App_Data وإرساله مرة أخرى إلى العميل. سيكون من العمل ولكن بشكل عام، فإن البيانات مخصصة للبيانات التي يمكن فقط قراءة طلبك. من خلال وجود معالج يقرأ البيانات، لا يزال بإمكانك إرجاع هذه الصور.

لكنها ممارسة سيئة وإذا كنت تعمل من أجلي، فستطلق على الفور !!!

هذا يعتمد! ؛)

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

الأهم، إنها الطريقة الوحيدة التي تحتوي على ملفات مختلفة لكل خادم خادم / نشر.

عند نشر تطبيقك، يمكنك حماية هذه الملفات التي تم تحميلها من قبل المستخدمين لكل مثيل خادم عن طريق تمكين "استبعاد الملفات من App_Data" في تكوين النشر الخاص بك.

إذا كنت ترغب في الوصول إلى هذه الملفات بواسطة URL استخدم معالج تنزيل، DownloadFile.ashx على سبيل المثال.

أتمنى أن يساعدك هذا.

يمكن تقديم محتويات من مجلد App_data ولكن ليس مباشرة.
الوصول المباشر غير ممكن وغير موصى به غير مستحسن. إنه متعمد.

ومع ذلك، يمكن إضافة المسار الظاهري القيام بذلك. انظر الى هذا سؤال


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

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