2013-06-05 4 views
1

Так что моя функция загрузки файлов работала некоторое время, но внезапно она перестала работать, и проблема осталась даже после того, как я протестировал ее в новом проекте и вернулся к старой версии кода.ASP FileUpload внезапно не работает

Ниже приведен код моей функции загрузки.

 public void EnsureDirectoriesExist() 
{ 
    string currentuser = "admin"; 
    //string currentuser = (string)(Session["uname"]); 
    // if the \pix directory doesn't exist - create it. 
    if (!System.IO.Directory.Exists(Server.MapPath(@"~/userimages/" + currentuser + "/displaypicture/"))) 
    { 
     System.IO.Directory.CreateDirectory(Server.MapPath(@"~/userimages/" + currentuser + "/displaypicture/")); 
    } 

} 

protected void uploadbtn_Click(object sender, EventArgs e) 
{ 
    string currentuser = "admin"; 
    //string currentuser = (string)(Session["uname"]); 
    if (FileUpload1.HasFile && Path.GetExtension(FileUpload1.FileName) == ".png") 
    { 
     // create posted file 
     // make sure we have a place for the file in the directory structure 
     EnsureDirectoriesExist(); 
     String filePath = Server.MapPath(@"~/userimages/" + currentuser + "/displaypicture/" + FileUpload1.FileName); 
     String filePath2 = ("~/userimages/" + currentuser + "/displaypicture/" + FileUpload1.FileName); 
     FileUpload1.SaveAs(filePath); 
     SqlConnection conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["myConnectionString"].ToString()); 

     string mySQL, mySQL2; 


     mySQL2 = "DELETE FROM displaypicture WHERE username='" + currentuser + "'"; 
     mySQL = "INSERT INTO displaypicture(username,path) VALUES ('" + currentuser + "','" + filePath2 + "')"; 
     conn.Open(); 
     SqlCommand cmdAdd2 = new SqlCommand(mySQL2, conn); 
     SqlCommand cmdAdd = new SqlCommand(mySQL, conn); 
     cmdAdd2.ExecuteNonQuery(); 
     cmdAdd.ExecuteNonQuery(); 

     conn.Close(); 


     MessageBox.Show("Upload successful!"); 

    } 
    else 
    { 
     MessageBox.Show("Upload has failed. Please check file format."); 
    } 
    } 

Так что в основном я получаю функцию else, поскольку функция if не кажется правильной. Однако я мог бы поклясться, что он работал около 2 недель, прежде чем внезапно не работал. Я также переключать, если функция,

if(currentuser.equals("admin")){ 
} 

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

+0

Просьба показать с помощью обработанного элемента '' на сгенерированной странице HTML. Я подозреваю, что вам не хватает правильного атрибута enctype. – Dai

+0

@Dai

Damienn

+0

, который выглядит хорошо для меня, попробовали отладки и выполнили ввод кода определить проблему? – Dai

ответ

0

В вашей форме есть UpdatePanel? Может быть на странице, в MasterPage или в UserControl.

FileUpload (или input type='file') не работает с асинхронной (Ajax) обратной передачей. Чтобы устранить эту проблему, удалите UpdatePanel или установите кнопку отправки в качестве PostBackTrigger или посмотрите мой ответ здесь: https://stackoverflow.com/a/3868293/245581

+0

Да, проблема, похоже, связана с областью обновления. Объект FileUpload всегда будет пустым в области обновления , – Damienn

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