webuploader實作上傳視訊
之前有人讓我做一個webuploader上傳視訊,但是一直沒有時間,現在抽出了時間來。來完成以下這個簡單的demo
第一步,上傳視訊和上傳 圖檔有什麼差別麼?
其實是沒有的,因為執行的操作都是上傳,是以說我們并不用擔心上傳的問題。
但是webuploader實際上是限制了你上傳的參數(這裡指的是限制了你的檔案擴充名)
我們找到webuploader中的js參數accept中的extensions
accept: {
title: 'Images',
extensions: 'gif,jpg,jpeg,bmp,png',
mimeTypes: 'image/*'
}
這裡面我們隻需要将gif等字尾改成你需要上傳的格式(MP4,AVI等)
這裡面改了後我們的背景也要進行修改
[HttpPost]
public ActionResult upload(HttpPostedFileBase file)
{
if (file != null && file.ContentLength > 0)
{
string folderpath = "/UploadFile/";//上傳圖檔的檔案夾
if (!Directory.Exists(folderpath))
{
Directory.CreateDirectory(Server.MapPath(folderpath));
}
string ext1 = Path.GetExtension(file.FileName);
if (ext1 != ".mp4" && ext1 != ".rmvb" && ext1 != ".avi" && ext1 != ".flv")//筆者這兒修改了字尾的判斷
{
return Json(new { statu = 201, msg = "檔案格式不正确!" });
}
else
{
string name = DateTime.Now.ToString("yyyyMMddHHmmssff");
string ext = Path.GetExtension(file.FileName);
string downpath = folderpath + name + ext;
string filepath = Server.MapPath(folderpath) + name + ext;
file.SaveAs(filepath);
return Json(new { statu = 200, src = downpath, id = name });
}
}
else
{
return Json(new { statu = 202, msg = "請上傳檔案!" });
}
}
<tr>
<td>上傳視訊</td>
<td>
<div id="upl">上傳視訊</div>//馬上這個會用js執行個體化
</td>
</tr>
<script>
var uploader;
$(function () {
uploader = WebUploader.create({
auto: true,
swf: '/Scripts/Uploader.swf',
server: '@Url.Action("Upload")',//控制器
pick: '#upl',
accept: {
title: 'Images',
extensions: 'mp4,flv,jpeg,bmp,doc,docx,rar,pdf',
}
})
});
</script>