File downloaden MVC3 RazorView

Pagina: 1
Acties:

Onderwerpen


  • Khallouki
  • Registratie: Oktober 2006
  • Laatst online: 09:30
Beste allen,

Ik ben bezig met een MVC applicatie, een onderdeel hiervan is een doodsimpele forum.

Ik zit alleen vast met het volgende.

Ik heb een Model thread, in die model zit er een IEnumerable<Post>, vervolgens zit er in die post een <HttpPostedFileBase> FileUpload.


Het uploaden en opslaan gaat prima.
C#:
1
2
3
4
5
6
7
8
9
10
11
12
public ActionResult CreatePost(ForumPost forumPost, int? id, IEnumerable<HttpPostedFileBase> fileUpload)
        {
            if (fileUpload.ElementAt(0) != null)
            {
                var fileName = "";
                var fileSavePath = "";
                var uploadedFile = Request.Files[0];
                fileName = Path.GetFileName(uploadedFile.FileName);
                fileSavePath = Server.MapPath("~/App_Data/uploads/" + fileName);
                uploadedFile.SaveAs(fileSavePath);
                forumPost.FileUpload = fileUpload;
            }

etc..etc...


Nou wil ik naast elke reactie dat wordt geplaatst een link naar debijbehorende file om het te downloaden.
Hoe doe ik dat? Moet ik de filename meegeven aan een Download Actionresult?

Ik heb zitten googlen maar tevergeefs.

[ Voor 0% gewijzigd door RobIII op 22-09-2011 21:24 . Reden: Code tags toegevoegd ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Als je code post, gebruik dan code tags a.u.b.
Verder: Je hebt zitten googlen maar...? Tevergeefs? Waarom vind ik dan wel vanalles in een minuut met een simpele query? En waarom voldeed wat je vond dan niet? Waarom post je (irrelevante) code voor 't uploaden en zie ik geen code die je geprobeerd hebt voor 't download gedeelte? Heb je onze Quickstart gehanteerd bij 't openen van je topic?

Zoals je ziet mis ik nogal wat zaken in je topicstart; ik laat je topic voor nu even open staan maar hanteer volgende keer gewoon even onze quickstart ;) Dan hoeven we niet in onze glazen bollen te kijken, zien we wat je zelf al geprobeerd hebt (waarop we dan aanwijzingen kunnen geven of in ieder geval niet ook nog eens mee aan te komen kakken) en hoeven we niet na je topicstart nog vanalles uit je te trekken dat je zelf al meteen had kunnen vermelden ;)

offtopic:
Je weet dat je homepage een malware warning geeft?

[ Voor 38% gewijzigd door RobIII op 22-09-2011 21:32 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Khallouki
  • Registratie: Oktober 2006
  • Laatst online: 09:30
Het probleem zit hem in het specifiek aanvragen van de bestand die hoort bij de post, dat zie ik nergens.

Ik zie alleen een Download method zonder parameters. Mijn vraag is hoe ik vanuit mijn view het bestand kan downloaden die bij de bijbehorende post hoort.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Khallouki schreef op donderdag 22 september 2011 @ 21:32:
Mijn vraag is hoe ik vanuit mijn view het bestand kan downloaden die bij de bijbehorende post hoort.
Mijn vraag is, again: Wat heb je al geprobeerd?
Hoe is 't downloaden van een file anders dan, zeg, het opvragen van een details pagina van een product?

Wat is het verschil tussen:
    /product/details/<productid>
en:
    /files/download/<filename>
:?


C#:
1
2
@Html.ActionLink("WC Eend", "details", new { Controller = "product" })
@Html.ActionLink("MyFile.zip", "download", new { Controller = "files", file = "myfile.zip" })


En waarom voldoet deze link dan niet die ik je gaf? Daar staat dat perfect in beschreven.

[ Voor 41% gewijzigd door RobIII op 22-09-2011 21:44 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Khallouki
  • Registratie: Oktober 2006
  • Laatst online: 09:30
Hele duidelijke link dank! alleen het volgende.

Ik heb dit in mijn View


C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@model Leeromgeving.Models.ForumThread

@{
    ViewBag.Title = "Details";
}

<fieldset>
    <legend>@Html.DisplayFor(model => model.Title)</legend>
    <br />
    <table>                     
    @foreach (Leeromgeving.Models.ForumPost post in Model.ForumPosts)
    {
                <tr><td><b>@Html.DisplayFor(postAuthor => post.Author) zegt:</b></td><td>@Html.DisplayFor(postTime => post.Created)</td></tr>
                <tr><td>@Html.DisplayFor(postMessage => post.Message)</td><td>@Html.ActionLink("Download bestand", "Download", )</td></tr>
    }
                </table>
</fieldset>


Mijn probleem nu, de fileUpload klasse zit in post, hoe zorg ik ervoor dat ik aan de fileName kom van de fileUpload die in post zit, want die wil ik meegeven aan de Download controller. Begrijp je mijn probleem?

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
post.FileUpload.Filename ofzo :? Wij kennen je ForumPost class toch niet, hoe moeten wij dat dan weten :? Again: wat heb je zelf al geprobeerd? We zitten hier niet om handjes te houden...

[ Voor 13% gewijzigd door RobIII op 22-09-2011 21:55 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1