zoukankan      html  css  js  c++  java
  • 无插件的图片批量上传,前端借鉴了网上大牛的,控制器自己弄的

    //前台
    <script type="text/javascript">

    //下面用于多图片上传预览功能

    function setImagePreviews(avalue) {

    var docObj = document.getElementById("doc");

    var dd = document.getElementById("dd");

    dd.innerHTML = "";

    var fileList = docObj.files;

    for (var i = 0; i < fileList.length; i++) {

    dd.innerHTML += "<div style='float:left' > <img id='img" + i + "' /> </div>";

    var imgObjPreview = document.getElementById("img" + i);

    if (docObj.files && docObj.files[i]) {

    //火狐下,直接设img属性

    imgObjPreview.style.display = 'block';

    imgObjPreview.style.width = '150px';

    imgObjPreview.style.height = '180px';

    //imgObjPreview.src = docObj.files[0].getAsDataURL();

    //火狐7以上版本不能用上面的getAsDataURL()方式获取,需要一下方式

    imgObjPreview.src = window.URL.createObjectURL(docObj.files[i]);

    }

    else {

    //IE下,使用滤镜

    docObj.select();

    var imgSrc = document.selection.createRange().text;

    alert(imgSrc)

    var localImagId = document.getElementById("img" + i);

    //必须设置初始大小

    localImagId.style.width = "150px";

    localImagId.style.height = "180px";

    //图片异常的捕捉,防止用户修改后缀来伪造图片

    try {

    localImagId.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";

    localImagId.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc;

    }

    catch (e) {

    alert("您上传的图片格式不正确,请重新选择!");

    return false;

    }

    imgObjPreview.style.display = 'none';

    document.selection.empty();

    }

    }

    return true;

    }

    </script>
    </head>
    <body>
    <div>


    <form action="@Url.Action("csscff")" method="post" enctype="multipart/form-data">
    <input type="file" name="file" id="doc" multiple="multiple" style="150px;" onchange="javascript:setImagePreviews();" accept="image/*" />
    <br />
    <input type="text" name="txt1">
    <br />
    <input type="submit" value="提交" />
    <div id="dd" style=" 990px;"></div>
    </form>


    </div>
    </body>
    </html>

    //控制器

    //上传
    [HttpPost]
    public ActionResult csscff(string txt1,HttpPostedFileBase[] file)
    {


    if (new List<HttpPostedFileBase>(file).Contains(null))
    {
    return Content("<script>alert('请完整输入');location.href='BackstageIndex'</script>");
    }
    else {
    var counts = "";

    for (int i = 0; i < file.Length; i++)
    {
    // Qccords m = new Qccords();

    string savePath = Server.MapPath("~/img/" + DateTime.Now.ToString("yyyyMMdd") + "/");

    //文件大小 MB
    // double FileSize = file[i].ContentLength / 1024000;

    if (!Directory.Exists(savePath))
    {
    Directory.CreateDirectory(savePath);
    }

    var fileName = file[i].FileName;

    var ExtensionName = Path.GetExtension(fileName);

    var fileSavePath = savePath + DateTime.Now.ToString("yyyyMMddHHmmsssfff") + ExtensionName;

    file[i].SaveAs(fileSavePath);

    var file_Name = "/" + fileSavePath.Substring(Server.MapPath("~/").Length).Replace("\", "/");

    // m.PhotoAlbum_State = 0;
    // m.PhotoAlbum_Address = file_Name;
    // m.User_Id = Convert.ToInt32(Session["User_Id"]);
    // m.PhotoAlbum_Size = FileSize.ToString();
    // m.PhotoAlbum_Name = fileName;
    var txt1s = txt1;
    counts = Convert.ToString(b.Qradd(file_Name, fileName,txt1));

    }
    if (Convert.ToInt32(counts) > 0)
    {
    return Content("<script>alert('上传成功');location.href='BackstageIndex'</script>");

    }
    else
    {
    return Content("<script>alert('上传失败');location.href='BackstageIndex'</script>");
    }

    }
    // return View();
    }

  • 相关阅读:
    windows api学习笔记读写其他进程的内存
    WindowsApi学习笔记创建一个简单的窗口
    windows api学习笔记创建进程
    汇编语言基础教程加法指令
    windows api学习笔记使用定时器
    windows api学习笔记多线程
    C#中两个问号的双目运算符
    通过UDP的组播方式收发数据
    windows api学习笔记用临界区对象使线程同步
    工作流学习笔记ifElse活动;从工作流中取出返回值;计算器实例
  • 原文地址:https://www.cnblogs.com/Dingcps/p/9353403.html
Copyright © 2011-2022 走看看