2013-03-11 2 views
0

В моем приложении MVC я позволяю пользователю создавать новый файл PDF с помощью редактора. Я хочу сохранить созданный файл в папке, как я могу это сделать? Это мой взгляд код:сохранение файла в папке

<textarea class="ckeditor" id="message" ></textarea> 
<input class="green_button" id="btnCre" type="button" text="Save" value="Save" onclick="confirmsave();"/> 
function confirmsave() { 
    var box = dhtmlx.modalbox({ 
     title: "PDF File Details", 

     text: "<div id='form_in_box'><div><label> Enter The File Name <input id='fileName' class='inform' type='text'></label><br></div><div><span class='dhtmlx_button'><input type='button' value='save' onclick='create_PDF(this)' style='width:80px;'></span><span class='dhtmlx_button'><input type='button' value='Cancel' onclick='closeFile(this)' style='width:80px;'></span></label></div></div>", 
     width: "300px" 
    }); 
} 
function closeFile(box) { 

    dhtmlx.modalbox.hide(box); 


} 
function create_PDF(box) { 
     var fileName = $("#fileName").val(); 
    var content = CKEDITOR.instances["message"].getData(); 
    if (content == "") { 
     alert("Enter Content in The Editor"); 
     return false; 
    } 
    dhtmlx.modalbox.hide(box); 
    dhtmlx.message("Saving file..."); 
    $.post("/CreatePDF/CreatePDFile", 
    { 
     content: '' + content + '' 
    }, function (data) { 

      data = jQuery.trim(data); 
      alert("PDF File created succesfully"); 
      //$("#display_thumbs").html(data); 
      CKEDITOR.instances["editor1"].setData(""); 


     }); 
    } 

и код Контроллер

public ActionResult CreatePDFile(FormCollection data) 
    { 
     var htmlContent = data["content"]; 
     var fileName = data["fileName"]; 

     return View(); 
    } 
+0

Это mvc-asp.net? –

ответ

0

eaiest способ заключается в использовании PHP PDF Creator, в которой и cqn создать PDF из предоставленных данных. Посмотрите на tcpdf и посмотрите, будет ли это работать

+0

Я использую CKEDITOR для этого и уточнил код public ActionResult CreatePDFile (данные FormCollection) { var htmlContent = data ["content"]; var filename = data ["filename"]; строка sFilePath = Server.MapPath (_fileUploadPath + имя файла + ".pdf"); return Вид(); } , но теперь я получаю ошибку для имени файла. Когда я отлаживаю, он показывает значение имени файла undefined – 2013-03-11 05:30:30

0

Вместо публикации содержимого как части объекта JSON его проще разместить как часть формы. См. this article для более подробной информации о том, что вам нужно сделать.

+0

В этой части кода я не разрешаю пользователю загружать файлы с помощью CKEDITOR, пользователь может создать свой собственный файл PDF. Я получил половину решения следующим образом: public ActionResult CreatePDFile (данные FormCollection) { var htmlContent = data ["content"]; var filename = data ["filename"]; строка sFilePath = Server.MapPath (_fileUploadPath + имя файла + ".pdf"); return Вид(); } , но теперь я получаю ошибку для имени файла. Когда я отлаживаю это показывает значение имени файла undefined – 2013-03-11 05:29:55

+0

Я получил ответ на вышеуказанную проблему public ActionResult CreatePDFile (данные FormCollection) { var htmlContent = data ["content"]; var filename = data ["filename"]; string sFilePath = Server.MapPath ("~/pdf /" + filename + ".html"); if (! System.IO.File.Exists (sFilePath)) { FileStream fs = System.IO.File.Create (sFilePath); возвращение Вид(); } теперь файл сохраняется, но проблема в том, что он показывает размер файла как 0kb, даже если я ввожу данные в него и не могу открыть этот файл. – 2013-03-11 06:36:58

+0

Ну, похоже, что вы только создаете файл. Вам все равно необходимо использовать StreamWriter для фактического написания двоичных данных в содержимом файла после его создания. –

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