之前有人让我做一个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
文档等杂七杂八的东西啊