Tuesday, February 26, 2013

Pembuatan Modul Video



Salah satu fitur UGC yang ditawarkan kepada user adalah video. Fitur ini bisa digunakan oleh user yang sudah teregistrasi ke dalam server. Video yang sudah di upload oleh user dapat dilihat sebagai bahan pembelajaran dan informasi bagi user lainnya. Berbicara dari segi requirement pembuatan form upload video membutuhkan beberapa file konfigurasi seperti file config.cs, utilities.cs, file LinqToSQL (atau biasa disebut data context), dan sebuah folder penyimpanan video yang diupload oleh user. Setelah seluruh requirement dipenuhi barulah kita masuk ke dalam listing program.  Inti program saya buat pada sebuah file yang diberi nama dengan MyVideos.aspx
Pada Bahasa pemrograman ASP.NET , pembutan website dipisahkan antara kode asp dengan control program di C#.  Untuk tampilan view/UI website saya menggunakan  bahasa pemrogaman asp sedangkan untuk control saya menggunakan bahasa pemrograman C#. Berikut kode listing yang digunakan
MyVideos.aspx



<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="MyVideos.aspx.cs" Inherits="MyVideos" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentHolder5" runat="Server">
<h3>Upload New Video</h3>
<table> <tr>
    <td> Title </td>
    <td> : </td>
    <td>
       <asp:TextBox ID="TextBoxTitle" runat="server" MaxLength="50"></asp:TextBox>
    </td>
    </tr>
    <tr>
    <td> Description </td>
    <td> : </td>
    <td>
    <asp:TextBox ID="TextBoxDescription" runat="server" Width="300" MaxLength="500"></asp:TextBox>
    </td>
    </tr>
    <tr>
    <td> File </td>
    <td> : </td>
    <td>
              <asp:FileUpload ID="FileUpload1" runat="server" Font-Size="Smaller" />
    </td>
    </tr>
    </table>
    <asp:Button ID="ButtonUpload" runat="server" Text="Upload" OnClick="ButtonUpload_Click" Font-Size="Smaller" />
    <br />
<asp:Label ID="LabelMessage" SkinID="LabelMessage" runat="server"></asp:Label>
    </asp:Content>
MyVideos.aspx.cs
using System;
using System.Linq;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;

public partial class MyVideos : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack) { this.Title = Config.SiteName + " : My Videos"; }
    }
    protected void ButtonUpload_Click(object sender, EventArgs e)
    {
        if (TextBoxTitle.Text.Trim() == "")
        {
            LabelMessage.Text = "Title for your video is required";
        }
        else if (!FileUpload1.HasFile)
        {
            LabelMessage.Text = "File does not exist";
        }
        else
        {
            if (!Config.IsAllowedFileType(FileUpload1.FileName))
            {
                LabelMessage.Text = "File format is not supported";
            }
            else if (FileUpload1.PostedFile.ContentLength > Config.MaximumFileSizeInBytes)
            {
                LabelMessage.Text = "File size must not larger than " + Config.MaximumFileSizeInKiloBytes + " KiloBytes";
            }
            else
            {
                string fileExtension = Path.GetExtension(FileUpload1.FileName);
                string username = User.Identity.Name;
                string generatedFileName = username + "_" + DateTime.Now.Ticks.ToString();
                string destination = Server.MapPath(@"Videos\") + generatedFileName + fileExtension;
                Video video = new Video();
                video.Title = TextBoxTitle.Text;
                video.Description = TextBoxDescription.Text;
                video.FileName = generatedFileName + fileExtension;
                video.Username = username; pidioDataContext database = new pidioDataContext();

                database.Videos.InsertOnSubmit(video);
                database.SubmitChanges();

                FileUpload1.SaveAs(destination);
                LabelMessage.Text = "File has been uploaded";



            }
        }
    }
}

 

0 comments:

Post a Comment