2013-08-07 2 views
0

Я установил некоторый HTML-файл, чтобы взять файл, и файл отправляется на сервер. Тем не менее, я не хочу, чтобы данные были на сервере, а скорее на клиенте. Как я могу отправить данные обратно на клиентскую сторону, все еще имея возможность читать данные? Это должно быть совместимо с IE8 или по крайней мере IE9. Я использую Javascript и KnockoutJS для клиентской стороны и используя C#/asp.net MVC для серверной части.Как читать файл после загрузки на сервер

Вот как я отправляю файл на сервер. Поскольку это метод POST, не должен ли я что-то возвращать? Может быть, я не понимаю, как это предполагается использовать.

@using (Html.BeginForm("loadReport", "home", FormMethod.Post, new {enctype="multipart/form-data"})){ 

<input type="file" name="FileUpload1" /><br /> 
<input type="submit" name="Submit" id="Submit" value="Upload" />} 


    public ActionResult loadReport() 
    { 
     foreach (string upload in Request.Files) 
     { 
      //  if (!Request.Files[upload].HasFile()) continue; 
      string path = AppDomain.CurrentDomain.BaseDirectory; 
      string filename = Path.GetFileName(Request.Files[upload].FileName); 
      Request.Files[upload].SaveAs(Path.Combine(path, filename)); 
      System.Diagnostics.Debug.WriteLine(Path.GetFileName(Request.Files[upload].FileName)); 
     } 
     return this.Json(new { }); 
    } 

Эти две части по существу являются частями, которые я нашел в блоге о том, как загрузить на сервер. Вместо того, чтобы возвращать файл JSON, они вернули представление. Я попробовал это, чтобы проверить функциональность, но он вернул новую страницу, а не json-файл на мой javascript.

+1

Включите попытки решения, почему они не работают и ожидаемые результаты. –

+0

Можете ли вы получать и сохранять поток на стороне сервера? – Damien

+0

Что вы понимаете, получая и сохраняя поток на стороне сервера? – user2429079

ответ

0

Когда вы загружаете файл на сервер, он остается на сервере; вы не можете прочитать его через клиент, если
1.) При рендеринге страницы содержимое файла считывается на стороне сервера и отображается.
2.) Используйте AJAX для получения содержимого файла; затем используйте JavaScript для управления результатом.

Итак, сохраните файл; затем используйте AJAX для извлечения его содержимого или обновления страницы и записи содержимого файла на страницу рендеринга.

Надеюсь, что это объяснение понятно, и это помогает.

+0

При сохранении файла, как его сохранить, не обновляя страницу? – user2429079

+0

вам придется использовать AJAX для этого. Используйте [эту ссылку] (http://code.msdn.microsoft.com/Upload-Files-Asynchronously-829691df) и [эту ссылку] (http://www.youtube.com/watch?v=EwZ6zdu3TMM) в качестве учебников , –

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