2013-06-03 2 views
1

Ниже приведен код, который создает образец файла PDF. Однако метод server.mappath сохраняет файл в папке проекта. Как я могу сохранить файл PDF на моем рабочем столе?Укажите местоположение для сохранения файла pdf asp.net

protected void btnPDF_Click(object sender, EventArgs e) 
    { 


     var document = new Document(PageSize.A4, 50, 50, 25, 25); 
     var filename = DDLCase.SelectedItem.Text + ".pdf"; 
     var output = new FileStream(Server.MapPath(filename), FileMode.Create); 
     var writer = PdfWriter.GetInstance(document, output); 
     document.Open(); 
     var welcomeParagraph = new Paragraph("Test1"); 
     document.Add(welcomeParagraph); 
     document.Close(); 
     btnPDF.Enabled= false; 
    } 
+1

«сохраняется в рабочем столе» - почему вы думаете, что место на сервере лучше, чем любые другие (плюс некоторые счета не могут правильно заселены «рабочий стол») ... Или вы хотите вызвать диалог сохранения в браузере? Или вы хотите использовать код на стороне сервера для сохранения на рабочем столе на компьютере пользователя? –

+0

попробуйте для 'string fileName = Path.Combine (@" C: \ Users \ username \ Desktop ", имя_файла);' или попробуйте 'VirtualPathUtility'. – Rahul

+0

@AlexeiLevenkov На самом деле, я сейчас просто разбираюсь в основах PDF-файла на локальном хосте. Поэтому я просто пытаюсь найти способ сохранить файл PDF в любом месте на рабочем столе на компьютере пользователя. –

ответ

3

очень неясно, что ваша проблема в том, как это должно быть довольно просто заменить Server.MapPath(filename) с другим местом.

одна полезная функция Path.Combine так что вы можете правильно построить путь к файлу:

var output = new FileStream(Path.Combine("c:\\myPDF\\", filename), FileMode.Create); 

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

+0

Это может быть просто для вас, но в остальном для меня, поскольку я всего лишь студент, все еще пытающийся изучить и изучить о asp.net, C# и pdf. Но, тем не менее, я должен поблагодарить вас за вашу помощь. Я добавил свой рабочий стол «C: \ Users \ apr12mpsip \ Desktop», но у меня есть эта ошибка, например «Unrecognized escape sequence». Я скопировал каталог файлов непосредственно из моего окна-проводника. –

+0

@TeoChuenWeiBryan - важно использовать поисковые системы - http://www.bing.com/search?q=c%23+Unrecognized+escape+sequence (пожалуйста, также подумайте о том, как читать основные типы C#, такие как 'string' и как могут быть представлены строковые литералы). –

+0

Вы правы. Благодарю. –

0

Постарайтесь это

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; 
    } 
Смежные вопросы