2012-01-04 3 views
2

Использование строки загрузки файла asp.net в событии onClick на стороне сервера.Доступ к управлению вводом файла типа в коде за 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 для записи нового файла в путь в одно событие click.

ответ

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

Я попробовал это, и я получал «Ссылка на объект не указывает на экземпляр объекта. " исключение. Я должен сначала создать объект? –

+0

@nickgowdy, позвольте мне угадать - ваш элемент управления FileUpload вложен в UpdatePanel? – Shai

+0

My FileUpload не вложен между панелью обновления, но я использую его на этой странице. Я обновил свое оригинальное сообщение, чтобы показать полную разметку страницы, если это поможет. –

0
File1.PostedFile.FileName 

даст вам имя файла

Пожалуйста, следуйте примеру этого

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

+0

Я пробовал это, и проблема заключается не в том, как получить доступ но не имеет значения, когда событие onclick запускается в моем коде. –

Смежные вопросы