2012-01-04 8 views
2

Server Side onClickイベントでのasp.net fileupload文字列の使用。たぶんasp.netの背後にあるコードでの型ファイルの入力コントロールへのアクセス

ASP.Netファイルアップロードコントロールを

<asp:FileUpload ID="btnFileUpload" runat="server" Width="0px" onchange="this.form.lblUploadStatus.value=GetFileName(this.value);"/> 
<asp:TextBox ID="txtUploadStatus" runat="server" Width="680px"></asp:TextBox> 

Javascriptを

<script type="text/javascript"> 

function GetFileName(val) { 
    var i = val.lastIndexOf("\\"); 
    $get('<%= txtUploadStatus.ClientID %>').value = val; 
    return true; 
} 

</script> 

.NET

using (SqlConnection dbConnection = new SqlConnection(CKS_app_settings.sql_conn_string_db)) 
     { 
      try 
      { 
       dbConnection.Open(); 
       SqlCommand command = new SqlCommand(sSQL, dbConnection); 
       //command.Transaction = tn; 
       command.CommandText = sSQL; 
       command.CommandType = CommandType.StoredProcedure; 
       command.CommandTimeout = 1024; 

       // Split entire file path to grab filename 
       string[] split = txtUploadStatus.Text.Split(new char[] { '\\' }); 
       string fileName = split[06]; 

       command.Parameters.AddWithValue("@p_filename", fileName); 
       command.Parameters.AddWithValue("@p_url", txtUrl.Text); 
       command.Parameters.AddWithValue("@p_Title", txtImgTitle.Text); 
       command.Parameters.AddWithValue("@p_alt_text", txtAlt.Text); 
       int rowsAffected = command.ExecuteNonQuery(); 
      } 
      catch (SqlException ex) 
      { 
       // throw ex; 

       //If it failed for whatever reason, rollback the //transaction 
       //tn.Rollback();       
       //No need to throw because we are at a top level call and //nothing is handling exceptions 
       result = ex.InnerException.Message; 
      } 
     } 

よりよい解決策がありましたが、データベースにデータを挿入し、system.ioを使用してワンクリックイベントで新しいファイルをパスに書き込むため、これは私にとってはうまくいったのです。

答えて

1
HttpPostedFile file = File1.PostedFile; 
string sName = file.FileName; // Contains file name 
+0

それの例に従ってください。 "例外。私が最初に構築しなければならないオブジェクトはありますか? –

+0

@nickgowdy、あなたのFileUploadコントロールはUpdatePanelの中​​にネストされていますか? – Shai

+0

FileUploadは更新パネルの間にネストされていませんが、そのページで1つ使用しています。私はオリジナルの投稿を更新して、それが役に立ったらページのマークアップ全体を表示しました。 –

0
File1.PostedFile.FileName 

あなたは

をファイル名与える私はこれを試してみましたが、私は、オブジェクトのインスタンスに設定されていない「オブジェクト参照を受け取っ

http://www.java2s.com/Tutorial/ASP.NET/0080__HTML-Controls/inputtypefile.htm

+0

私はこれを試して、問題はアクセスする方法ではありませんそれは私のコードでonclickイベントが発生したときには価値がありません。 –

関連する問題