Vielleicht eine einfache Frage, aber ich weiß wirklich nicht, was zu tun ist.Probleme mit dem Upload auf Produktionsserver aber nicht in Entwickler
Wenn ich eine Datei über ein Formular unter Verwendung <asp:FileUpload>
einreiche, funktioniert es perfekt auf meinem Dev-Computer.
Wenn ich das gleiche auf dem Server versuchen, gibt es mir den Fehler unten. Der Fehler hilft mir überhaupt nicht, weil ich diese Funktion nicht einmal in meinem Code (CaptureCollection) habe und ich habe keine Variable namens "i". So, jetzt weiß ich es wirklich nicht.
Ist das eine Frage von Recht auf dem Server (ich glaube nicht, weil ich alle Rechte gebe und der Fehler immer noch da ist), ist es etwas auf meinem Code (aber es funktioniert auf meinem Dev-Rechner. ..). Ich kann mehr Code zeigen, wenn Sie brauchen!
Der Fehler:
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: i Source 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
Hier ist der Code, der das Hochladen der Fall ist. Und vielleicht hast du Recht mit der Regex. Aber warum arbeitet es am Entwickler und nicht am Produkt?
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;
}
Können Sie den Code in Ihre btnFinish_Click() -Methode schreiben? –
Vorhersage: Wir suchen nach dem Namen einer Datei oder eines Ordners, die noch nicht auf Ihrem Produktionsrechner vorhanden sind. – Dustman