Vikas Hire Ответов: 2

Как Сохранить PDF-документ в папке проекта?


Привет,
Ниже приведен мой код, который преобразует таблицу данных в PDF-форму. Это можно скачать на сайте браузера, но я хочу сохранить этот pdf-файл в папке проекта.
для этого есть какой-то дополнительный код. Я много пробовал. Но я не могу. пожалуйста помочь.

public void ExportToPDF(string userAutoId)
    {
        //Get the data from database into datatable
        string uId = userAutoId.Substring(0, 8);
        DataTable dt = new DataTable();
        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString);
        con.Open();
        SqlDataAdapter da = new SqlDataAdapter("getContacts", con);
        da.SelectCommand.CommandType = CommandType.StoredProcedure;
        da.SelectCommand.Parameters.AddWithValue("@userAutoId", userAutoId);
        //cmd.Parameters.Add("@retValue", System.Data.SqlDbType.VarChar).Direction = System.Data.ParameterDirection.ReturnValue; 
        da.Fill(dt);
    
        //Create a dummy GridView
        GridView GridView1 = new GridView();
        GridView1.AllowPaging = false;
        GridView1.DataSource = dt;
        GridView1.DataBind();
    
        Response.ContentType = "application/pdf";
        Response.AddHeader("content-disposition",
            "attachment;filename=DataTable.pdf");
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        StringWriter sw = new StringWriter();
        HtmlTextWriter hw = new HtmlTextWriter(sw);
        GridView1.RenderControl(hw);
        StringReader sr = new StringReader(sw.ToString());
        Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
        HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
        PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
        pdfDoc.Open();
        htmlparser.Parse(sr);
        pdfDoc.Close();

/*here I ant to code for save pdf file in project folder*/
        
        string strPath = HostingEnvironment.ApplicationPhysicalPath + @"TempFiles/";
        string fileName =uId + "ContactList.pdf";
        
        //PdfWriter writer = PdfWriter.GetInstance(pdfDoc new FileStream(strPath + fileName, FileMode.Create));
        //File.WriteAllText(strPath + fileName, sr.ToString());
        
        Response.Clear();
        Response.Write("{\"success\":true,\"isSuccess\":true,\"fileName\":\"" + fileName + "\"}");

        //Response.Write(pdfDoc);
        //Response.End();
    }   


Что я уже пробовал:

Я должен Сохранить pdf-файл в локальной папке проекта..

2 Ответов

Рейтинг:
2

Suvendu Shekhar Giri

Попробуй Server.MapPath()

string fileName =uId + "ContactList.pdf";
string strPath = Server.MapPath(@"TempFiles/"+fileName);

Ссылка: HttpServerUtility.Метод MapPath (String) (System. Web)[^]
Надеюсь, это поможет :)


Рейтинг:
1

Trimantra Software Solution

попробовать это

public string CommonFileSave(HttpPostedFileBase postedFile, string filePath)
       {
           string resultResponse = "sccuess";

           if (!Directory.Exists(filePath))
           {
               Directory.CreateDirectory(filePath);
               postedFile.SaveAs(filePath + postedFile.FileName);
           }
           else
           {
               filePath = filePath + postedFile.FileName;
               if (!System.IO.File.Exists(filePath))
               {
                   postedFile.SaveAs(filePath);
               }
           }
           return resultResponse;
       }