我有一个web应用程序,用户可以上传图像.我遇到的当前问题是正在上传的图像以原始格式保存到数据库中.当在网页上使用图像时,这会导致很多性能问题.我使用dotTrace来分析应用程序,我发现从数据库处理图像时会出现重大问题.
我的想法是在图像上传到服务器时调整图像大小.以下示例,我希望应用程序在用户上传新图像时执行此操作;
唯一存储的图像是上面提到的图像,web应用程序包含动态调整大小的技术.
我已经在SO上阅读了几个主题.而且他们中的大多数都指向了ImageMagick的方向.这个工具在我的公司已经很熟悉,并且在PHP项目中使用.但是这个工具有没有任何好的和稳定的C#包装器?我已经找到了下面的工具,但他们要么在Béta发布,Alpha发布,要么当前没有更新.
我也在SO上找到了这个话题.在本主题中,提供了以下代码示例;
private static Image CreateReducedImage(Image imgOrig, Size newSize)
{
var newBm = new Bitmap(newSize.Width, newSize.Height);
using (var newGrapics = Graphics.FromImage(newBm))
{
newGrapics.CompositingQuality = CompositingQuality.HighSpeed;
newGrapics.SmoothingMode = SmoothingMode.HighSpeed;
newGrapics.InterpolationMode = InterpolationMode.HighQualityBicubic;
newGrapics.DrawImage(imgOrig, new Rectangle(0, 0, newSize.Width, newSize.Height));
}
return newBm;
}
Run Code Online (Sandbox Code Playgroud)
总之,我有问题;
欢迎任何有关表演的其他好建议!
我必须遵循被调用来改变图像分辨率的函数.我想这样做,所以上传的图像例如300dpi将被修改为72dpi(对于web).这个问题与我在哪里工作的另一个问题有关.
我创建了一个扩展方法,可以在我的应用程序中的更多位置使用此功能,而不是仅在上载新文件时.(见上述问题)
public static byte[] SetDpiTo72(this byte[] imageToFit, string mimeType, Size newSize)
{
using (MemoryStream memoryStream = new MemoryStream(), newMemoryStream = new MemoryStream())
{
memoryStream.Write(imageToFit, 0, imageToFit.Length);
var originalImage = new Bitmap(memoryStream);
using (var canvas = Graphics.FromImage(originalImage))
{
canvas.SmoothingMode = SmoothingMode.AntiAlias;
canvas.InterpolationMode = InterpolationMode.HighQualityBicubic;
canvas.PixelOffsetMode = PixelOffsetMode.HighQuality;
canvas.DrawImage((Image)originalImage,0,0, newSize.Width, newSize.Height);
newBitmap.SetResolution(72, 72);
newBitmap.Save(newMemoryStream, ImageFunctions.GetEncoderInfo(mimeType), null);
}
return newMemoryStream.ToArray();
}
}
Run Code Online (Sandbox Code Playgroud)
提到的扩展方法在类似于下面情况的函数中被调用;
if (newSize.Width > originalImage.Width && newSize.Height > originalImage.Height)
{
newSize.Width = originalImage.Width;
newSize.Height = originalImage.Height;
uploadedFileBuffer = …Run Code Online (Sandbox Code Playgroud) Web应用程序为我提供了一个XML-feed,我无法改变.我想要做的是将这个XML-feed分成几个无序列表.我正在尝试使用下面的XSLT.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:output method="xml" omit-xml-declaration="yes" indent="yes" encoding="utf-8" />
<xsl:param name="html-content-type" />
<xsl:template match="/NavigationTree">
<xsl:if test="count(//Page) > 0">
<ul>
<xsl:apply-templates select="Page">
</xsl:apply-templates>
</ul>
</xsl:if>
</xsl:template>
<xsl:template match="//Page">
<li class="{position() mod 3}">
<xsl:text disable-output-escaping="yes"><![CDATA[» ]]></xsl:text>
<a>
<xsl:attribute name="href">
<xsl:value-of select="@FriendlyHref" disable-output-escaping="yes"/>
</xsl:attribute>
<xsl:value-of select="@MenuText" disable-output-escaping="no"/>
</a>
</li>
<xsl:if test="position() mod 3 = 0">
<xsl:if test="position() < count(//Page)">
<!--Don't know if this is the correct approach, but when the position is 3 and there are more items following …Run Code Online (Sandbox Code Playgroud) 所以,我想使用jQuery函数从链接的REL中收集URL,并将其传递给元素.
收集REL并将其发送到没有问题...但是从jQuery触发元素的加载和播放功能需要什么?
这是我到目前为止所拥有的:
$(function(){
$('a.componentLink').click(function() {
event.preventDefault();
var vidURL = $(this).attr('rel');
$('#myVideo > source').attr('src', vidURL);
$('#myVideo').load();
$('#myVideo').play();
})
});
Run Code Online (Sandbox Code Playgroud)
ATM,它没有播放......我认为jQuery本身无法访问播放功能......但必须有办法解决这个问题.
我有一个使用 Entity Framework 6 运行的小型 MVC Web 应用程序。通过浏览我的开发人员上的主页(例如 www.mywebsite.dev)启动应用程序时。机器应用程序池开始并按预期加载页面。
尽管主页非常轻量级并且仅从数据库中获取一些内容(2 个菜单、2 个带有文本的段落以及一个包含 3-4 个对象的集合),但应用程序池在刚刚加载后已经 > 200 MB (!)主页一次..
使用这篇文章和这篇文章,我设法弄清楚了如何分析管理内存,并且我还删除了一些阻止上下文处理的静态属性。DbContext 已禁用延迟加载,
public class MyContext: DbContext
{
private readonly Dictionary<Type, EntitySetBase> _mappingCache = new Dictionary<Type, EntitySetBase>();
#region dbset properties
//Membership sets
public IDbSet<UserProfile> UserProfiles { get; set; }
public IDbSet<Project> Project { get; set; }
public IDbSet<Portfolio> Portfolio { get; set; }
public IDbSet<Menu> Menu { get; set; }
public IDbSet<MenuItem> MenuItem { get; set; }
public IDbSet<Page> …Run Code Online (Sandbox Code Playgroud) 我正在使用xval在我的asp.net mvc2 web应用程序中使用客户端验证.尽管我在数字字段中输入文本时会出现错误,但它仍然会尝试将表单发布到数据库中.错误的值将被替换为0并保存到数据库中.但相反,甚至不可能尝试提交表格.有人可以帮我从这里出去吗?
我已将属性设置如下:
[Property]
[ShowColumnInCrud(true, label = "FromPriceInCents")]
[Required]
//[Range(1, Int32.MaxValue)]
public virtual Int32 FromPriceInCents{ get; set; }
Run Code Online (Sandbox Code Playgroud)
捕获请求的控制器如下所示; 我在这部分没有错误.
[AcceptVerbs(HttpVerbs.Post)]
[Transaction]
[ValidateInput(false)]
public override ActionResult Create()
{
//some foo happens
}
Run Code Online (Sandbox Code Playgroud)
我的观点如下:
<div class="label"><label for="Price">FromPrice</label></div>
<div class="field">
<%= Html.TextBox("FromPriceInCents")%>
<%= Html.ValidationMessage("product.FromPriceInCents")%></div>
Run Code Online (Sandbox Code Playgroud)
在视图的最后,我有以下规则,在html代码中生成正确的验证规则
<%= Html.ClientSideValidation<Product>("Product") %>
Run Code Online (Sandbox Code Playgroud)
我希望有人可以帮助我解决这个问题,提前谢谢!
编辑:4月19日我刚刚发现有一个正常的按钮被使用而不是输入类型="按钮"这可能是问题吗?
<button class="save" type="submit" name="save"><span>Opslaan</span></button>
Run Code Online (Sandbox Code Playgroud) 使用博客张贴在这里和一个主题在这里,所以我已经创建了一个控制器,它应该处理我所有的错误页面.
在我的Global.asax.cs中,我得到了以下代码:
protected void Application_Error()
{
var exception = Server.GetLastError();
var httpException = exception as HttpException;
var routeData = new RouteData();
Response.Clear();
Server.ClearError();
routeData.Values["controller"] = "Error";
routeData.Values["action"] = "General";
routeData.Values["exception"] = exception;
Response.StatusCode = 500;
if (httpException != null)
{
Response.StatusCode = httpException.GetHttpCode();
switch (Response.StatusCode)
{
case 403:
routeData.Values["action"] = "Http403";
break;
case 404:
routeData.Values["action"] = "Http404";
break;
}
}
// Avoid IIS7 getting in the middle
Response.TrySkipIisCustomErrors = true;
IController errorsController = new ErrorController();
HttpContextWrapper …Run Code Online (Sandbox Code Playgroud) 我正在使用实体框架,集合以及那里的usting where-conditions和order by actions进行编程.我一直在问这个问题,但从来没有弄明白.
假设我已经得到了两段代码;
例1:
// An unsorted string array.
string[] letters = { "d", "c", "a", "b" };
// Use LINQ query syntax to sort the array alphabetically.
var sorted = from letter in letters
orderby letter
select letter;
// Loop with the foreach keyword.
foreach (string value in sorted)
{
Console.WriteLine(value);
}
Run Code Online (Sandbox Code Playgroud)
例2:
// An unsorted string array.
string[] letters = { "d", "c", "a", "b" };
// Loop with the foreach keyword.
foreach (string val in …Run Code Online (Sandbox Code Playgroud) 我目前正在 Xamarin.Forms 中构建我的第一个移动应用程序。该应用程序有一个 facebook 登录,在用户登录后,我存储 facebook 令牌,因为我想将它用作不记名令牌来验证针对 API 的任何进一步请求。
该 API 是一个 .NET core 2.0 项目,我正在努力使身份验证正常工作。
在我的 Xamarin.Forms 应用程序中,使用以下代码将 facebook 令牌设置为不记名令牌;
_httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", UserToken);
Run Code Online (Sandbox Code Playgroud)
据我所知,这正确地在请求的标头中设置了承载令牌。我和我的一位同事谈过这个问题,他告诉我看一下 Identityserver4,它应该支持这个。但目前,我决定不这样做,因为对我来说,目前实施这一点是有开销的。因此,我决定坚持使用 Facebook 代币作为不记名代币的想法并验证这一点。
因此,我的下一步是找到一种方法来通过 Facebook 验证传入的不记名令牌,以检查它是否(仍然)有效。所以我为我的 API 项目配置了启动,如下所示;
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(o =>
{
o.DefaultAuthenticateScheme = …Run Code Online (Sandbox Code Playgroud) 运行此脚本时,我收到一条错误消息,即document.GetElementById不是函数?- 您可以在以下网址查看该网站:http://www.fritidsjobbere.dk:
//Show random div with Javascript
antal = 6;
var randomnumber=Math.floor(Math.random()*antal);
if(randomnumber == "0") {
randomnumber = 1;
}
//alert(randomnumber);
document.getElementsById("partner-ad"+randomnumber).style.display = 'block';
Run Code Online (Sandbox Code Playgroud) c# ×6
asp.net-mvc ×3
javascript ×3
asp.net ×2
asp.net-core ×1
bearer-token ×1
facebook ×1
html ×1
jquery ×1
linq ×1
memory ×1
memory-leaks ×1
memorystream ×1
performance ×1
stream ×1
validation ×1
video ×1
xml ×1
xpath ×1
xslt ×1
xslt-2.0 ×1
xval ×1