多个文件上传和转换成HTML格式

本文关键字:转换 HTML 格式 文件 | 更新日期: 2023-09-27 18:09:47

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

下面是我的代码:
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);
                }
            }
        }
    } 

多个文件上传和转换成HTML格式

在asp.net中不能使用一个文件上传控件上传多个文件。

检查这里的解决方案:asp.net多个上传与多个文件上传控制和http://www.dotnetcurry.com/ShowArticle.aspx?ID=68

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

您正在使用Interop转换DOC文件- ,这是根据微软不支持在ASP。

您可以使用其他库,如Microsoft(免费)或Aspose的OpenXML。

不依赖Office的word(商业),在像您这样的服务器场景中完全支持。

如果上传的文件存在于directory中,则使用directory . getfiles代替httpfilecollection。它将从目录中返回特定的文件*.doc文件,然后将其转换为。html。

string[] filePaths = Directory.GetFiles(@"d:'files'", "*.doc");