之前有人讓我做一個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>
這里面大家也看到了uploader不僅僅可以上傳一些最基本的圖片視頻而且還能上傳一些doc文檔等雜七雜八的東西啊