Как добавить видео из базы данных без URL? - PullRequest
0 голосов
/ 31 марта 2020

меня зовут Омер и Има студент. Я создал сайт и хочу, чтобы пользователь загрузил видео. я использовал объект ole для добавления базы данных, и мне это удалось, но у меня возникли проблемы с добавлением видео с базы данных на сайт. Я не хочу сохранять файл в папке, а затем использовать URL. это возможно? код: App_Data:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization;

public class MyVideoHelper
{
    public MyVideoHelper()
    {

    }

    //הפונקציה מקבלת מסלול של קובץ ומחזירה את הקובץ מומר לבייטים
    public  byte[] ConvertFileToByte(Stream file)
    {
        byte[] video = null;

        BinaryReader br = new BinaryReader(file);
        video = br.ReadBytes((int)(file.Length));

        return video;
    }
    public FileStream ConvertByteToFile( byte[] file)
    {
        Stream stream = new MemoryStream(file);
        FileStream filestream = stream as FileStream;
        return filestream;
    }


}

sapx.cs

MyVideoHelper x = new MyVideoHelper();
            string hero3 = Request.Form["hero3"];
            if (Session["loggedIn"] != "true")
            {
                Response.Write("<script>alert('You Are not SignIN!');</script>");
                return;
            }
            if ((video2.PostedFile != null) && (video2.PostedFile.ContentLength > 0))
            {
                Stream fs = video2.PostedFile.InputStream;
                string command = "INSERT INTO videos (hero, file) VALUES( '" + hero3 + "','" + x.ConvertFileToByte(fs) + "')";
                MyAdoHelper.DoQuery("omerwatchdb.accdb", command);

            }

            string sql = "SELECT file FROM videos";
            DataTable info = MyAdoHelper.ExecuteDataTable("omerwatchdb.accdb", sql);
            string omer;
            omer = info.Rows[2][0].ToString();
            byte[] bytes = Encoding.ASCII.GetBytes(omer);
             vid = x.ConvertByteToFile(bytes);

1 Ответ

1 голос
/ 31 марта 2020

Если вы собираетесь вставить видеофайл в базу данных (а вам, вероятно, не следует), то вам следует рассматривать его как двоичные данные, то есть столбец BLOB. Для вставки данных вы должны использовать «параметризованный запрос», где указываются данные для команды SQL отдельно от самой команды.

Вы можете следовать примеру о том, как добавить файл изображения . Процесс будет идентичным для видео. А вот статья о том, как получить данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...