c# - 如何直接显示最近上传的视频?

标签 c# jquery asp.net file-upload video.js

我不想创建一个概念证明来向用户表明,如果他们以 .MP4 和 OGG 格式上传同一视频,生成的视频标签(使用 videojs)将是跨平台的。

我已经使用设计器成功创建了一个文件 uploader ,它可以将最大 512mb 的文件上传到解决方案中的"file"文件夹,但我想知道如何使用生成的视频标签更新网页。

这是我要更改的标签:

<video id="example_video_1" class="video-js vjs-default-skin"  
      controls preload="auto" width="640" height="264"  
      poster="http://video-js.zencoder.com/oceans-clip.png"  
      data-setup='{"example_option":true}'>  
   <source id="mp4" src="http://video-js.zencoder.com/oceans-clip.mp4" type='video/mp4' />  
   <source id="webm" src="http://video-js.zencoder.com/oceans-clip.webm" type='video/webm' />  
   <source id="ogg" src="http://video-js.zencoder.com/oceans-clip.ogv" type='video/ogg' />  
</video>

我的保存方式:

protected void btnUpload_Click(object sender, EventArgs e){    
            //check to make sure a file is selected    
            if (FileUpload1.HasFile)    {
                //create the path to save the file to        
                string fileName = Path.Combine(Server.MapPath("~/Files"), FileUpload1.FileName);
                //save the file to our local path
                FileUpload1.SaveAs(fileName);    
            }
        }

编辑:

我现在几乎有了解决方案。不知何故,它没有得到正确的路径。我创建的解决方案:

<script type="text/javascript">
    var _strSource = '<ASP:LITERAL runat="server" id="litSource" />';
    window.onload = function ()
    {
        if ( _strSource != "" ) {
            alert( _strSource );
            var video = document.getElementById( 'objVideo' );
            var sources = video.getElementsByTagName( 'source' );
            alert( sources[0].src );
            sources[0].src = _strSource;
            video.load();
            video.play();
        }
    }
</script>

在服务器端:

protected void btnUpload_Click(object sender, EventArgs e){
    //check to make sure a file is selected    
    if (FileUpload1.HasFile)    {
        //create the path to save the file to        
        string fileName = Path.Combine(Server.MapPath("/Files"), FileUpload1.FileName);
        //save the file to our local path
        FileUpload1.SaveAs(fileName);
        this.litSource.Text = fileName.Replace("\\", "\\\\");
    }
}

我还在我的 web.config 中添加了这个:

<staticContent>
  <mimeMap fileExtension=".mp4" mimeType="video/mp4" />
  <mimeMap fileExtension=".ogg" mimeType="video/ogg" />
  <mimeMap fileExtension=".webm" mimeType="video/webm" />
  <mimeMap fileExtension=".m4v" mimeType="video/m4v" />
</staticContent>

它现在将路径更改为(在我的例子中)C:\Projects\FileUploadTest\FileUploadTest\Files\c4b3ae2189ea.ogg。这是文件上传到的实际路径,但浏览器无法访问此路径。有谁知道如何实现这一点?

最佳答案

你需要创建一个可以通过浏览器访问的 url,例如,如果你的文件上传到 c:\www\mysite\uploadfolder 你必须创建这个 url http://mysite/uploadfolder/movieFileName.ogg

关于c# - 如何直接显示最近上传的视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11082045/

相关文章:

javascript - 如何检测选择框何时关闭?

jquery - Safari 中的 html5 播放器控件太长

javascript - jquery if语句动画返回

C# 4.0/EF - SQL Server Compact 不支持服务器生成的键和服务器生成的值

c# - 应用程序在运行异步任务时挂起

c# - 如何从引用另一个脚本的 C# 运行 Powershell 脚本

c# - 使用 WebService 上传文件

c# - 回发后如何保持 DropDownList1 的选定值?

javascript - 通过 javascript 将复杂参数传递给 Web API 服务

asp.net - 如何右对齐 DropDownList 中的选项?