با اکشن متد بالا فقط یک فایل قابل بازیابی هست جهت دسترسی گروهی به تصاویر و نمایش یک گالری تصویر در wasm چگونه هست؟ با تشکر از شما
تمام ایمیلهای ارسالی توسط GitHub به همین صورت رصد میشوند (البته Yahoo اخیرا آدرس تصاویر موجود در ایمیلها را بازنویسی و به سرور خودش منتقل میکند):
نظرات مطالب
OpenCVSharp #18
این مطلب قسمت 18 هست. یعنی یک سری پیشنیازهایی مطرح شدهاند تا رسیده به قسمت 18، مانند: بررسی morphology (ریخت شناسی) تصاویر
+ یک مثال از مورفولوژی برای تشخیص متن
+ یک مثال از مورفولوژی برای تشخیص متن
برای آپلود چند تصویر به صورت غیر ای جکسی (آپلود همزمان با سابمیت فرم) که قابلیت نمایش تصاویر و حذف اونها رو داشته باشه میشه موردی رو معرفی بفرمایید؟
تاثیر قابل توجهی ندارد. تمام تصاویر سایت جاری به صورت مستقیم ارائه نمیشوند و return File هستند. به این صورت مباحث caching را بهتر میشود اعمال کرد.
نظرات مطالب
استفاده از Froala WYSIWYG Editor در ASP.NET
با سلام؛ توسط خاصیت imageUploadURL مشخص میکنیم که تصاویر کجا ذخیره شوند. یک خاصیت دیگه هم imagesLoadURL در خصوص این خاصیت میشه توضیح بدین.
با تشکر از راهنمایی شما، این مورد به خوبی در حالت localhost کار میکند و تغییر تصویر نیز به خوبی عمل میکند. هنگامی که سایت را Publish میکنم، تصاویر نمایش داده نمیشود. ممنون میشم راهنمایی کنید.
- نسخه جدیدتر return Json دارد، بجای return Content. کمی بالاتر بحث شده.
+ مسیر نسبی هم باید برای تصاویر بازگشت داده شود.
+ مسیر نسبی هم باید برای تصاویر بازگشت داده شود.
نظرات مطالب
اعمال کنترل دسترسی پویا در پروژههای ASP.NET Core با استفاده از AuthorizationPolicyProvider سفارشی
با توجه به اینکه برای هر درخواست رسیده به اکشن متد تزئین شده با PermissionAuthorizeAttribute لازم است تا وهله سازی جدید از AuthorizationPolicy برای policyName دریافتی صورت پذیرد، شاید بهتر باشد برای بهبود کارایی سیستم، تغییرات زیر را اعمال کرد:
با توجه به مطلب «الگویی برای مدیریت دسترسی همزمان به ConcurrentDictionary»، مخزنی امن برای دسترسی همزمان به لیست سیاستهای درخواست شده قبلی تحت عنوان _policies ایجاد شده است. سپس در بدنه متد GetPolicyAsync تغییرات زیر را اعمال کنید:
public class AuthorizationPolicyProvider : DefaultAuthorizationPolicyProvider { private readonly LazyConcurrentDictionary<string, AuthorizationPolicy> _policies = new LazyConcurrentDictionary<string, AuthorizationPolicy>(); public AuthorizationPolicyProvider(IOptions<AuthorizationOptions> options) : base(options) { } public override async Task<AuthorizationPolicy> GetPolicyAsync(string policyName) { //... } }
public override async Task<AuthorizationPolicy> GetPolicyAsync(string policyName) { //... var policy = _policies.GetOrAdd(policyName, name => { var permissionNames = policyName.Substring(PermissionAuthorizeAttribute.PolicyPrefix.Length).Split(','); return new AuthorizationPolicyBuilder() .RequireClaim(CustomClaimTypes.Permission, permissionNames) .Build(); }); return policy; }
نظرات مطالب
تبدیل html به pdf با کیفیت بالا
یک نکتهی تکمیلی:
پروژهی wkhtmltopdf خاتمه یافته و دیگر نگهداری نمیشود. اگر به دنبال یک جایگزین با کیفیت برای آن هستید، مرورگر کروم، قابلیت تبدیل توکار HTML به PDF را دارد که بر این اساس کتابخانهی ChromiumHtmlToPdf بهوجود آمده و در پشت صحنه از همان موتور کروم برای تبدیل HTML به PDF با کیفیت بسیار بالا استفاده میکند. این کتابخانه همچنین قابلیت تهیهی screenshot از صفحهی وب را هم دارد.
یک نمونه مثال: تبدیل یک فایل HTML به PDF
using (var converter = new Converter()) { converter.ConvertToPdf(new ConvertUri(SourcePath), "output.pdf", new PageSettings(PaperFormat.A4) { DisplayHeaderFooter = true, HeaderTemplate = header, FooterTemplate = footer, PrintBackground = true, }); converter.ConvertToImage(new ConvertUri(tempSourcePath), "output.png", new PageSettings(PaperFormat.A6)); }
یک نمونه مثال از header و footer قابل استفادهی در اینجا را هم مشاهده میکنید:
var header = """ <div class="text center" style="color: lightgray;border-bottom: solid lightgray 0.1px; width: 100%; font-family: 'Samim'; font-size:7px;"> <span class="title"></span> </div> """; var footer = """ <div class="text center" style="color: lightgray; font-family: 'Samim'; font-size:7px;"> <span class="pageNumber"></span>/<span class="totalPages"></span> </div> """;
روش استفادهی از آن در برنامههای وب ASP.NET Core
میتوانید ورودی HTML خود را به صورت زیر به آن داده و byte array نهایی را بدون نیاز به ذخیره سازی به صورت فایل، از یک اکشن متد، بازگشت دهید:
var HTML = "<HTML code>"; using (Converter converter = new Converter()) using (MemoryStream stream = new MemoryStream()) { // This is necessary when running on Docker converter.AddChromeArgument("--no-sandbox"); // Create PDF out of HTML string converter.ConvertToPdf(html, stream, new ChromeHtmlToPdfLib.Settings.PageSettings()); // Return file to user return File(stream.ToArray(), MediaTypeNames.Application.Pdf, "Report.pdf"); }