gpt4 book ai didi

c# - Server.MapPath 在使用网络图像裁剪库时抛出错误

转载 作者:行者123 更新时间:2023-11-30 15:08:07 25 4
gpt4 key购买 nike

我有一个图像存储在服务器上的位置:

C:\inetpub\wwwroot\imageupload\images

在我的代码中,我想使用文件夹 images 中的图像,所以我尝试如下:

Server.MapPath("/images/sample1.jpg")

但我得到的错误是: enter image description here

请帮我解决错误

在几个要求贴出代码的回答中,如下

.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

<%@ Register Assembly="CS.Web.UI.CropImage" Namespace="CS.Web.UI" TagPrefix="cs" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<cs:CropImage ID="wci1" runat="server" />
</body>
</html>

.aspx.cs

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

wci1.Crop(Server.MapPath("/imageupload/images/sample1.jpg"));

/*
this part is just to show the image after its been cropped and saved! so focus on just the code above.
*/
Image img = new Image();
img.ImageUrl = "images/sample1.jpg?rnd=" + (new Random()).Next(); // added random for caching issue.
this.Controls.Add(img);
}
}

裁剪方法来 self 在 http://imagecropping.codeplex.com/ 中使用的 .dll 文件

最佳答案

如堆栈跟踪所述,CSA.Web.UI.CropImage.Crop 方法中存在错误。

Server.MapPath,据我所知,不会返回空字符串(如果它无法映射,它会抛出异常 - 但不是 NullReferenceException) .

我建议您查看我提到的方法,并可能也发布相关代码。

编辑:

因此,我快速查看了 the CodePlex project 中的 Crop 代码你提到并发现了以下几行(格式化我的):

private string ImagePath { get { return ViewState["ImageUrl"].ToString(); } }

drawing.Image image = drawing.Image.FromStream(
new MemoryStream(
System.IO.File.ReadAllBytes(
HttpContext.Current.Server.MapPath(this.ImagePath)
)
)
);

cropedImage.Save(path);

现在,在我看来:

  • 参数路径不为空*
  • 参数 ImageUrl null**

*虽然它可能“不正确”,但这不是现在的问题。

**意味着调用 ToString 是此代码中的中断因素。

基本上,控件没有设置要裁​​剪的图像,这在您自己的代码中很明显:

//currently no ImageUrl set...
<cs:CropImage ID="wci1" runat="server" />

//your'e trying to crop here without an ImageUrl...
wci1.Crop(Server.MapPath("/imageupload/images/sample1.jpg"));

修复方法是通过 ImageUrl 指定图像,据我所知,但我看不出如何操作。

关于c# - Server.MapPath 在使用网络图像裁剪库时抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5977200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com