0

Twitterのブートストラップを使用しています。プロフィール写真を変更しています。写真をフォルダに保存して、もう一度取得しています。ローカル システムでは問題なく動作しますが、コードをサーバーにデプロイした後は動作しません。しかし、画像はフォルダーに保存され、.aspx ページで変更されません。ログアウトして再度ログインすると、更新されます。

これが私のコードです:

  <img runat="server" id="ImgPic" />  
  <input type="file" id="fileUpload" runat="server"/>         
  <a href="javascript:void(0);" id="lnkChangePic" runat="server" onclick="ChangePicture();">Change</a>

  <asp:Button ID="btnChangeUserPic" runat="server" OnClick="btnChangeUserPic_Click"
        class="hidden" />   


function ChangePicture(){
  $('#btnChangeUserPic').click();
}

 protected void btnChangeUserPic_Click(object sender, EventArgs e)
    {
        try
        {
            string filePath = Server.MapPath("~/Upload/Images/");
            if (!Directory.Exists(filePath))
            {
                Directory.CreateDirectory(filePath);
            }
            string file = fileUpload.PostedFile.FileName.ToLower();
            HttpPostedFile hpfFile = fileUpload.PostedFile;
            if (file != "")
            {
                string fileExtn = Path.GetExtension(hpfFile.FileName).ToLower();

                if (fileExtn == ".jpg")
                {                       
                    string filename = filePath +System.IO.Path.GetFileName(hpfFile.FileName);
                    if (File.Exists(filename))
                    {
                        File.Delete(filename);
                    }
                    hpfFile.SaveAs(filename); 
                    ImgPic.src=    filename;                 
                }                   
            }            
        }
        catch (Exception ex)
        {               
        } 
   } 

画像はマスター ページでも更新されるはずです。

ご回答いただきありがとうございます。

4

2 に答える 2

0

「リフレッシュする」という言葉の意味が 100% わからないのですが、サーバーのファイルパスはローカル マシンのファイルパスと同じにはなりません。単純な文字列の代わりに Server.MapPath を使用します。

http://msdn.microsoft.com/en-us/library/ms524632(v=vs.90).aspx

また、フォルダーへのアクセス許可を確認し、実際に画像を表示する UI ページのコードを表示してください。どのように設定されていますか?

于 2013-10-18T11:14:14.883 に答える