2012-01-19 5 views
0
string Newfilename; 
string Defaultfilename; 

     protected void btnup_Click(object sender, EventArgs e) 
    { 
     if (ASPxUploadControl1.HasFile) 
     { 
      string fileExt = 
       Path.GetExtension(ASPxUploadControl1.FileName); 


      if (fileExt == ".xls" || fileExt == ".xlsx") 

       try 
       { 
        string extension = Path.GetExtension(ASPxUploadControl1.FileName); 
        string id = Guid.NewGuid().ToString(); 
        string fileLocation = string.Format("{0}/{1}{2}", Server.MapPath("upload/"), id, extension); 
        ASPxUploadControl1.SaveAs(fileLocation); 
        StatusLabel.Text = "Upload status: File uploaded!"; 

        Newfilename = fileLocation; 
        Defaultfilename = Path.GetFileName(ASPxUploadControl1.FileName); 

       } 
       catch (Exception ex) 
       { 
        StatusLabel.Text = "Upload status: The file could not be uploaded. The following error occured: " + ex.Message; 
       } 
      else 
      { 
       StatusLabel.Text = "Please choose excel file"; 
      } 

     } 
    } 

NewfilenameとDefaultfilenameに値を割り当てようとしています(アップロードされたファイルに名前を付けた後に "try"内にあります)。IFステートメント内での割り当て

どこが間違っていますか?

+0

のように見えるのでしょうか?現在何が起こっていますか? – musefan

+0

"私は失敗して"実際に何がうまくいかないかを教えてくれるわけではありません。参照してくださいhttp://tinyurl.com/so-hints –

+0

たぶんそれは私ですが、 "明白な"私がここで使用する単語ではないでしょう。たぶん、あなたがしようとしていることを明確にしようとする可能性があります。 –

答えて

1

コードをリファクタリングして、必要なプロセスを考えてください。コードをデバッグしてください。テストしてください。問題がある場合は、投稿を編集してください。それは私の提案です。 コードブロック "{}"でラップされているのと同じ方法{}を読んでも大丈夫だとすれば{}の周りを包むことになります。そうでなければ読みにくくて貸し出す援助。あなたは次のことを宣言しているあなたのコード内の

、方法自体

  • 文字列fileExt = String.Emptyの内でそれらの変数にします。
  • string extension = string.Empty;
  • string id = string.Empty;
  • string fileLocation = string.Empty;

ので、あなたの方法は何をしようとするこの

protected void btnup_Click(object sender, EventArgs e) 
{ 

    string fileExt = string.Empty; 
    string extension = string.Empty; 
    string id = string.Empty; 
    string fileLocation = string.Empty; 

    if (ASPxUploadControl1.HasFile) 
    {    
     fileExt = Path.GetExtension(ASPxUploadControl1.FileName); 
     if (fileExt == ".xls" || fileExt == ".xlsx") 
     { 
      try 
      { 
      extension = Path.GetExtension(ASPxUploadControl1.FileName); 
      id = Guid.NewGuid().ToString(); 
      fileLocation = string.Format("{0}/{1}{2}", Server.MapPath("upload/"), id, extension); 
      ASPxUploadControl1.SaveAs(fileLocation); 
      StatusLabel.Text = "Upload status: File uploaded!"; 
      Newfilename = fileLocation; 
      Defaultfilename = Path.GetFileName(ASPxUploadControl1.FileName); 
      }     
      catch (Exception ex) 
      { 
       StatusLabel.Text = "Upload status: The file could not be uploaded. The following error occured: " + ex.Message; 
      } 
     } 
     else 
     { 
      StatusLabel.Text = "Please choose excel file"; 
     } 
    } 
} 
1

Path.GetExtensionは、渡された値がnullの場合はnullを返し、渡された値に拡張子がない場合はstring.Emptyを返します。 ASPxUploadControl1.FileNameの値が実際に何か役に立つかどうか確認してください。

これが当てはまらない場合は、値が設定されている場所を調べて、それが設定されていない理由を調べる必要があります。

1

実行をステップ実行できますか?

NewFilename = fileLocation; 

実行を取得していますか?

もしそうなら、前と後のNewFilenameの値は何ですか?

これはASP.Netコードのようです。 あります。問題は、使用しようとするときNewFilenameコードビハインドのどこかが空白です。 もしあなたがそうなら、NewFilenameは、あなたがそれを使用できるようにセッションに保存する必要があるかもしれません。

hth、
アラン。

関連する問題