単純な質問かもしれませんが、私は本当に何をすべきかわかりません。
を使用してフォームからファイルを送信すると、<asp:FileUpload>
開発マシンで完全に機能します。
サーバーで同じことをしようとすると、以下のエラーが表示されます。コード (CaptureCollection) にこの関数さえなく、「i」という変数がないため、エラーはまったく役に立ちません。だから今、私は本当に知りません。
これはサーバー上での権利の問題ですか(可能な限りすべての権利を与えてもエラーがまだ残っているため、そうは思いません)、それは私のコード上のものですか(しかし、私の開発マシンでは動作します...)。必要に応じて、さらに多くのコードを表示できます。
エラー:
「/」アプリケーションでサーバー エラーが発生しました。 -------------------------------------------------- ------------------------------ 指定された引数は有効な値の範囲外です。 パラメータ名: i 説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。 例外の詳細: System.ArgumentOutOfRangeException: 指定された引数が有効な値の範囲外でした。 パラメータ名: i ソース エラー: 現在の Web 要求の実行中に未処理の例外が生成されました。例外の発生元と場所に関する情報は、以下の例外スタック トレースを使用して特定できます。 スタックトレース: [ArgumentOutOfRangeException: 指定された引数が有効な値の範囲外でした。 パラメータ名:i] System.Text.RegularExpressions.CaptureCollection.GetCapture(Int32 i) +5227599 System.Text.RegularExpressions.CaptureCollection.get_Item(Int32 i) +4 CreatePost.btnFinish_Click(オブジェクト送信者, EventArgs e) +143 System.EventHandler.Invoke(オブジェクト送信者, 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 (ブール値 includeStagesBeforeAsyncPoint、ブール値 includeStagesAfterAsyncPoint) +1565
アップロードを行うコードは次のとおりです。そして多分あなたは正規表現に正しいです。しかし、なぜ本番環境ではなく開発環境で動作するのでしょうか?
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;
}