Jump to content
Sign in to follow this  
Diogo24

Upload de ficheiros de video

Recommended Posts

Diogo24

Boa tarde.

Estou a fazer uma aplicação web em asp.net mvc 3 e estou com dificuldades em fazer upload de ficheiros de video e de criar ficheiros na maquina local para guardar esses videos.

Vou deixar aqui o que tenho feito como exemplo:

O código na View:

@model PartyInvites.Models.GuestResponse
@{
    Layout = null;
}
<!DOCTYPE html>
<html>
<head>
    <title>RsvpForm</title>
    <link rel="Stylesheet" href="@Href("~/Content/Site.css")" type="text/css"/>
</head>
<body>
    @using (Html.BeginForm("RsvpForm", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
    {
        @Html.ValidationSummary()
        <p>
            Your name: @Html.TextBoxFor(x => x.Name)
        </p>
        <p>
            Your email: @Html.TextBoxFor(x => x.Email)</p>
        <p>
            Your phone: @Html.TextBoxFor(x => x.Phone)</p>
        <p>
            Will you attend?
            @Html.DropDownListFor(x => x.WillAttend, new[] {
                new SelectListItem() {Text = "Yes, I'll be there", Value = bool.TrueString},
                new SelectListItem() {Text = "No, I can't come", Value = bool.FalseString}
            }, "Choose an option")
        </p>
        <p>
        
            Upload new video: <input type="file" name="Video"  />
        </p>
        
        <input type="submit" value="Submit RSVP" />
    }
</body>
</html>

Aqui fica o código do controler:

 [HttpPost]
        public ViewResult RsvpForm(GuestResponse guestResponse, HttpPostedFileBase video)
        {
            if (ModelState.IsValid)
            {
                if (video != null)
                {
                    guestResponse.ImageMimeType = video.ContentType;
                    guestResponse.ImageData = new byte[video.ContentLength];
                    video.InputStream.Read(guestResponse.ImageData, 0, video.ContentLength);
                    long l = HttpContext.Request.InputStream.Length;
                    bool b = HttpContext.Request.InputStream.CanRead;
                    FileStream f = new FileStream("C:\\Users\\Diogo\\Documents\\Visual Studio 2010\\Projects\\PartyInvites\\PartyInvites\\Content", FileMode.CreateNew, FileSystemRights.WriteData, FileShare.ReadWrite, video.ContentLength,FileOptions.Asynchronous);
                    if(f.CanWrite)
                    {
                        f.Write(guestResponse.ImageData, 0, video.ContentLength);
                        f.Flush();
                        f.Close();
                    }
                }

                // TODO: Email guestResponse to the part organizer
                return View("Thanks", guestResponse);
            }
            else
            {
                // there is a validation error - redisplay the form
                return View();
            }
        }

Gostaria de saber se alguém conhece como fazer upload do video ou então passar o path do video para o controler mantendo o botão de procurar (no explorer) q é criado.

O problema que eu tenho, é que quando vou faço submit do formulário, dá um erro no acesso ao servidor, mostra uma pagina de erro e diz que a operação foi abortada.

Cumprimentos e obrigado

Share this post


Link to post
Share on other sites
Diogo24

queria de qualquer tamanho  :happybday: , ou pelo menos até 1 giga. Mas 500 Mb também já n era mau. XD

achas que mudando a dimensão chega?

Share this post


Link to post
Share on other sites
Diogo24

Esse era um dos problemas, pelos vistos.

Agora o servidor n recebe o ficheiro, dá excepção por cauda do tempo que demora a carregar talvez.

Obrigado vou tentar resolver a leitura do ficheiro.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.