gpt4 book ai didi

asp.net - 在生产服务器上上传有问题,但在开发服务器上没有上传问题

转载 作者:行者123 更新时间:2023-12-01 16:12:22 26 4
gpt4 key购买 nike

也许是一个简单的问题,但我真的不知道该怎么办。

当我使用 <asp:FileUpload> 通过表单提交文件时,它在我的开发机器上完美运行。

当我在服务器上尝试相同的操作时,出现以下错误。该错误对我根本没有帮助,因为我的代码中甚至没有这个函数 (CaptureCollection)并且我没有名为“i”的变量。所以现在我真的不知道。

这是服务器上的权限问题(我不这么认为,因为我提供了所有可能的权限,但错误仍然存​​在),它是我的代码中的某些内容吗(但它在我的开发机器上工作...... .)。如果您需要,我可以显示更多代码!

错误:

Server Error in '/' Application.--------------------------------------------------------------------------------Specified argument was out of the range of valid values.Parameter name: i Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.Parameter name: iSource Error: An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.  Stack Trace: [ArgumentOutOfRangeException: Specified argument was out of the range of valid values.Parameter name: i]   System.Text.RegularExpressions.CaptureCollection.GetCapture(Int32 i) +5227599   System.Text.RegularExpressions.CaptureCollection.get_Item(Int32 i) +4   CreatePost.btnFinish_Click(Object sender, EventArgs e) +143   System.EventHandler.Invoke(Object sender, EventArgs e) +0   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +110   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565

Here is the code that does the uploading. And maybe you are right with the regex. But why is it working on dev and not on prod?

protected void btnFinish_Click(object sender, EventArgs e)
{
string file = "";
string csFinalPath = "";

if (uploadPhoto.HasFile)
{
string filepath = uploadPhoto.PostedFile.FileName;
string pat = @"\\(?:.+)\\(.+)\.(.+)";
Regex r = new Regex(pat);

//run
Match m = r.Match(filepath);
string file_ext = m.Groups[2].Captures[0].ToString();
string filename = m.Groups[1].Captures[0].ToString();
file = filename + "." + file_ext;

//save the file to the server
uploadPhoto.PostedFile.SaveAs(Server.MapPath(".\\upload\\") + file);

ThumbnailGenerator thumbGenerator = new ThumbnailGenerator();

if (thumbGenerator.GetThumbnail(Server.MapPath(".\\upload\\") + file,
Server.MapPath(".\\upload\\thumb\\") + "Thumb" + file))
{
csFinalPath = "./upload/thumb/" + "Thumb" + file;
}
else
{
//TODO: Do an error message!!!
}
}
else
{
csFinalPath = "./images/no_image.gif";
}

m_database.InsertPost(Convert.ToInt32(Session["ID"].ToString()),
Convert.ToInt32(ddlCategory.SelectedValue),
m_nType,
txtLink.Text,
txtTitreFR.Text,
txtTitreEN.Text,
txtDescriptionFR.Text,
txtDescriptionEN.Text,
csFinalPath,
"",
"");

panelLink.Visible = false;
panelResult.Visible = true;

}

最佳答案

您需要发布代码,但为了在黑暗中拍摄......

在页面上的 btnFinish_Click 方法中,您尝试使用正则表达式的位置出现问题。

很可能您已经捕获了一组正则表达式匹配项并尝试枚举它们,而实际上根本没有匹配项。 (或者您有一个 For 循环,它遍历的项目比集合/列表实际拥有的项目多。)

编辑:我 99% 确定它就在此处:

Match m = r.Match(filepath);

在执行其他操作之前,请在该行之后检查是否存在任何组。

if (m.Groups.Count == 0) { DoSomethingElseHere(); }

然后,查看该组中是否有任何捕获:

if (m.Groups[0].Captures.Count == 0) { DoSomethingElseHere(); }

最终你会通过这样做发现输入出了什么问题,但是查看代码而不是主动调试它,这是找出问题的唯一好方法。

编辑 2:顺便说一句,原则上您遇到此问题的原因是因为您在尝试使用输入之前尚未真正验证输入。我刚刚作为示例提供的代码将帮助您入门,但您应该始终清理即将出现的内容。

此外,如果您使用上传控件,并非所有浏览器都会传递文件的完整 UNC 路径(即\server\share\file.ext) - 有些浏览器只会传递文件名本身,所以这些是需要检查的一些事情。

关于asp.net - 在生产服务器上上传有问题,但在开发服务器上没有上传问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1229854/

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