2013-04-17 49 views
1

我试图上传多个文件,并通过将它们放入for循环同时将它们转换为.html格式。多个文件上传完成并存储到“上传”文件中,但只有第一个文件被转换为.htm格式,而不是全部。多文件上传并将其转换为html格式

这里是我的代码:

protected void btnUpload_Click(object sender, EventArgs e) 
    { 

     HttpFileCollection fileCollection = Request.Files; 
     //Code to check if user has selected any file on the form 
     if (!(fUpload1.HasFile)) 
     { 
      lblMessage1.Text = "Please choose file to upload"; 
     } 
     else 
     { 
      for (int i = 0; i < fileCollection.Count; i++) 
      { 
       try 
       { 
        HttpPostedFile uploadfile = fileCollection[i]; 
        string fileName = System.IO.Path.GetFileName(uploadfile.FileName); 

        //To check the file extension if it is word document or something else 
        //string strFileName = fUpload1.FileName; 
        string[] strSep = fileName.Split('.'); 
        int arrLength = strSep.Length - 1; 
        string strExt = strSep[arrLength].ToString().ToUpper(); 

        //Save the uploaded file to the folder 
        strPathToUpload = Server.MapPath("Uploaded2"); 

        //Map-path to the folder where html to be saved 
        strPathToConvert = Server.MapPath("Aadi2"); 

        object FileName = strPathToUpload + "\\" + fileName; 
        object FileToSave = strPathToConvert + "\\" + fileName + ".htm"; 

        if (strExt.ToUpper().Equals("DOC") | strExt.ToUpper().Equals("DOCX")) 
        { 
         uploadfile.SaveAs(strPathToUpload + "\\" + fileName); 
         lblMessage1.Text = "File uploaded successfully"; 
         //open the file internally in word. In the method all the parameters should be passed by object reference 
         objWord.Documents.Open(ref FileName, ref readOnly, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref isVisible, ref missing, ref missing, ref missing, ref missing, ref missing); 
         //Do the background activity 
         objWord.Visible = false; 


         Microsoft.Office.Interop.Word.Document oDoc = objWord.ActiveDocument; 
         oDoc.SaveAs(ref FileToSave, ref fltDocFormat, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); 
         lblMessage1.Text = fileName + " done"; 

        } 
        else if (strExt.ToUpper().Equals("JPG")) 
        { 
         strPathToUpload = Server.MapPath("images"); 
         uploadfile.SaveAs(strPathToUpload + "\\" + fUpload1.FileName); 
         lblMessage1.Text = "logo uploaded successfully"; 

        } 
        else if (strExt.ToUpper().Equals("TXT")) 
        { 
         strPathToUpload = Server.MapPath("name"); 
         fUpload1.SaveAs(strPathToUpload + "\\" + fUpload1.FileName); 
         lblMessage1.Text = "Website name uploaded successfully"; 

        } 
        else if (strExt.ToUpper().Equals("MP4")) 
        { 
         strPathToUpload = Server.MapPath("video"); 
         fUpload1.SaveAs(strPathToUpload + "\\" + fUpload1.FileName); 
         lblMessage1.Text = "Video uploaded successfully"; 

        } 

        else 
        { 
         lblMessage1.Text = "Invalid file selected!"; 
        } 
        //Close/quit word 
        objWord.Quit(ref missing, ref missing, ref missing); 
       } 
       catch (Exception ex) 
       { 
        Response.Write(ex.Message); 
       } 
      } 
     } 
    } 

回答

0

使用asp.net一个文件上传控件无法上传多个文件。

检查这里的解决方案:asp.net multiple uploads with multiple fileupload controlhttp://www.dotnetcurry.com/ShowArticle.aspx?ID=68

或上传多个文件,您可以在客户端生成多个上传控件或创建用户定义的控制。

+0

我初学者到C#...所以,如果你能指出什么错误,我的代码做了.. – user1593699

+0

上传他们是成功的,并保存在文件夹“上传”但只有第一个doc文件被转换成.htm格式 – user1593699

0

如果上传的文件存在于目录中,那么使用Directory.GetFiles而不是使用httpfilecollection。它将从目录中返回您的案例* .doc文件中的特定文件,然后将其转换为.html。

string[] filePaths = Directory.GetFiles(@"d:\files\", "*.doc"); 
相关问题