Lesen und Anzeigen der Hochgeladenen text-Dateien im MVC
Ist es möglich die hochgeladenen Textdateien, e.g .txt und zeigt den Inhalt in einer textbox ? Ich möchte einen Datei-Konvertierung der hochgeladenen Dateien. Ich habe es geschafft, hochladen und prüfen der Dateien möchte ich bei dem Klick auf eine Schaltfläche, um die Inhalte zu Lesen, und zeigt Sie in einem Textfeld bereit für die Konvertierung. Wie würde ich gehen über das tun dies?
Upload Klasse
public class UploadedFile
{
public long Size { get; set; }
public string Path { get; set; }
public string Name { get; set; }
//public int Length { get; set; }
public string extension { get; set; }
}
public class HomeController : Controller
{
[HttpGet]
public ActionResult Index()
{
ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";
return View();
}
[HttpPost]
public ActionResult Index(HttpPostedFileBase file)
{
var supportedTypes = new[] { "txt", "rtf", "html", "xaml", "xslx" ,"pdf", "doc", "docx", "csv" };
var fileExt = System.IO.Path.GetExtension(file.FileName).Substring(1);
if (!supportedTypes.Contains(fileExt))
{
ModelState.AddModelError("file", "Invalid type. Only the following types (txt, rtf, html, xslx, pdf, xaml, doc, docx, csv) are supported.");
return View();
}
if (file.ContentLength > 200000)
{
ModelState.AddModelError("file", "The size of the file should not exceed 200 KB");
return View();
}
if (file.ContentLength > 0)
{
var fileName = Path.GetFileName(file.FileName);
var path = Path.Combine(Server.MapPath("~/uploads"), fileName);
file.SaveAs(path);
}
return RedirectToAction("Index");
}
public ActionResult About()
{
var uploadedFiles = new List<UploadedFile>();
var files = Directory.GetFiles(Server.MapPath("~/uploads"));
foreach(var file in files)
{
var fileInfo = new FileInfo(file);
var uploadedFile = new UploadedFile() {Name = Path.GetFileName(file)};
uploadedFile.Size = fileInfo.Length;
uploadedFile.extension = Path.GetExtension(file);
uploadedFile.Path = ("~/uploads/") + Path.GetFileName(file);
uploadedFiles.Add(uploadedFile);
}
return View(uploadedFiles);
}
}
Bisher die hochgeladenen Dateien werden in einer Tabelle aufgelistet.Ich würde gerne Lesen und den Inhalt anzuzeigen, wenn auf die Schaltfläche Geklickt wird und die Inhalte in das Textfeld unterhalb der Tabelle. So kann ich der Umstellung.
Wie möchte ich das erreichen? Dank
`<script>$('btnreadfile').click(function () {
document.location = '@Url.Action("ReadTextFile","Home")'; });</script>
<input id="btnreadfile" name="btnReadFile" type="submit" value="Read File"/>
`My button Code
Das Lesen der hochgeladenen Datei eingecheckt wurde. Ich habe versucht, die Antwort unten aber das Skript wird nicht eingeleitet, da ich nicht weiß, wo es genau ist.
lassen Sie mich wissen, wenn meine Antwort hilfreich war oder wenn Sie hatte keine Probleme mit diesem code.
Sorry, deine Antwort nicht viel helfen. Ich habe das nun geändert Textfeld, eine Schaltfläche und ich bin immer noch nicht von dem aktuellen code ist
<script>$('btnreadfile').click(function () { document.location = '@Url.Action("ReadTextFile","Home")'; });</script> <input id="btnreadfile" name="btnReadFile" type="submit" value="Read File"/> </td>
sich nicht sicher, wo um zu gehen von hierlassen Sie mich sehen, wenn ich Ihnen dabei helfen kann. können Sie Ihre Marke auf und erklären Sie mir, was Sie hier wollen. Sie können einfügen, markieren hier jsfiddle.net/habo/tNUTg
InformationsquelleAutor b0w3rb0w3r | 2013-05-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Funktionierenden code. Vollständig getestet
in Sie _Layout.cshtml
in Ihrem Über.cshtml
Tabelle markieren
in Ihrem Über.cshtml den ganzen Weg unten fügen Sie dieses Skript
in Ihrem Controller
using System.Runtime.InteropServices.ComTypes;
Hinweis: ich habe als nur-lese-Dateien mit der Erweiterung
.doc, .docx and .txt
alle anderen Erweiterungen umgegangen werden soll, die weitereSo ziemlich jede Zeile der beiden code-Beispiele ist ungültig. Javascript: Checked, Value, "ulr", DataType, "cjeckbox" sind alle entweder falsch verrohrte oder falsch buchstabiert. Die hardcoded Verzeichnis C:\temp und die Annahme, dass alle Dateien haben .txt-Erweiterungen. Die ReadAllLines und dann ruft ToString() auf einem string-array(die nicht zurückkehren wird der Inhalt der Datei, es wird eine Zeichenfolge zurückgegeben, die wörtlich sagt [System.String[]]". Hast du test etwas über den code, den Sie geschrieben?
es war ein pseudo-code, id, id es nicht testen. Ich sollte erklärt habe, es in der Antwort. Aber Ihr Recht auf string-array tostirng() habe ich es geändert.
Wo findet die erste Probe der code gehen?
auf Ihre Sicht mit in <script> tags
InformationsquelleAutor HaBo