Tôi không muốn tạo bằng chứng khái niệm cho thấy người dùng rằng nếu họ tải lên cùng một video ở cả định dạng .MP4 và OGG, thẻ video được tạo (sử dụng videoj) sẽ là nền tảng chéo.Tôi làm cách nào để hiển thị trực tiếp video mới tải lên?
Tôi đã tạo thành công trình tải tệp lên bằng trình thiết kế và tải lên tệp lên tới 512MB, vào thư mục "tệp" bên trong giải pháp, nhưng tôi muốn biết cách cập nhật trang web bằng thẻ video được tạo.
Đây là thẻ tôi muốn thay đổi:
<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>
tôi phương pháp tiết kiệm:
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);
}
}
EDIT:
Tôi gần như có giải pháp bây giờ. bằng cách nào đó nó không có được con đường đúng. Các giải pháp tôi đã tạo:
<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>
Và ở phía máy chủ:
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("\\", "\\\\");
}
}
Tôi cũng đã thêm này trong web.config của tôi:
<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>
Nó bây giờ thay đổi đường dẫn đến (trong trường hợp của tôi) C: \ Projects \ FileUploadTest \ FileUploadTest \ Files \ c4b3ae2189ea.ogg. Đây là đường dẫn thực tế nơi tệp được tải lên, nhưng trình duyệt không thể tiếp cận đường dẫn này. Có ai có một ý tưởng làm thế nào để đạt được điều này?
Tôi nghĩ đó là dự phòng flash được lưu vào bộ nhớ cache. Ngay cả khi tôi đặt trình duyệt của mình để trình duyệt không lưu vào bộ nhớ cache, nó vẫn có vẻ như vậy. Đóng trình duyệt và mở lại nó là giải pháp thay thế nhưng có ai biết liệu tôi có thể đặt lại bộ nhớ cache Flash không? –
Lưu ý: nó hoạt động trên Chrome (sử dụng Chrome, bạn không nhận được dự phòng Flash) –