怎么在Asp.net MVC中使用swupload实现多图上传功能
创始人
2024-11-27 23:01:48
0次

1. 下载WebUploader

2. 将下载到的压缩包里面的文件复制到自己的项目中  

3. 添加引用






4.准备一个放图片的容器和一个上传按钮

 
 

5.创建Web Uploader实例并监听事件



 var applicationPath = window.applicationPath === "" ? "" : window.applicationPath || "../../";
 $(function () {
  var $ = jQuery,
  $list = $('#fileList'),
  // 优化retina, 在retina下这个值是2
  ratio = window.devicePixelRatio || 1,
  // 缩略图大小
  thumbnailWidth = 90 * ratio,
  thumbnailHeight = 90 * ratio,
  // Web Uploader实例
  uploader;
  uploader = WebUploader.create({
   // 选完文件后,是否自动上传。
   auto: false,

   // swf文件路径
   swf: applicationPath + '/Script/Uploader.swf',

   // 文件接收服务端。
   server: applicationPath + '/Home/UpLoadProcess',

   // 选择文件的按钮。可选。
   // 内部根据当前运行是创建,可能是input元素,也可能是flash.
   pick: '#filePicker',

   //只允许选择图片
   accept: {
    title: 'Images',
    extensions: 'gif,jpg,jpeg,bmp,png',
    mimeTypes: 'image/*'
   }
  });
  
  // 当有文件添加进来的时候
  uploader.on('fileQueued', function (file) {
   var $li = $(
     '' +
      '' +
     '
'      ),     $img = $li.find('img');    // $list为容器jQuery实例    $list.append($li);    // 创建缩略图    // 如果为非图片文件,可以不用调用此方法。    // thumbnailWidth x thumbnailHeight 为 100 x 100    uploader.makeThumb(file, function (error, src) {     if (error) {      $img.replaceWith('不能预览');      return;     }     $img.attr('src', src);    }, thumbnailWidth, thumbnailHeight);   });   // 文件上传过程中创建进度条实时显示。   uploader.on('uploadProgress', function (file, percentage) {    var $li = $('#' + file.id),     $percent = $li.find('.progress span');    // 避免重复创建    if (!$percent.length) {     $percent = $('

')       .appendTo($li)       .find('span');    }    $percent.css('width', percentage * 100 + '%');   });   // 文件上传成功,给item添加成功class, 用样式标记上传成功。   uploader.on('uploadSuccess', function (file, response) {        $('#' + file.id).addClass('upload-state-done');   });   // 文件上传失败,显示上传出错。   uploader.on('uploadError', function (file) {    var $li = $('#' + file.id),     $error = $li.find('div.error');    // 避免重复创建    if (!$error.length) {     $error = $('
').appendTo($li);    }    $error.text('上传失败');   });   // 完成上传完了,成功或者失败,先删除进度条。   uploader.on('uploadComplete', function (file) {    $('#' + file.id).find('.progress').remove();   });   //所有文件上传完毕   uploader.on("uploadFinished", function ()   {    //提交表单   });   //开始上传   $("#ctlBtn").click(function () {    uploader.upload();   });   //显示删除按钮   $(".cp_img").live("mouseover", function ()   {    $(this).children(".cp_img_jian").css('display', 'block');   });   //隐藏删除按钮   $(".cp_img").live("mouseout", function () {    $(this).children(".cp_img_jian").css('display', 'none');   });   //执行删除方法   $list.on("click", ".cp_img_jian", function ()   {    var Id = $(this).parent().attr("id");    uploader.removeFile(uploader.getFile(Id,true));    $(this).parent().remove();   });     });

6 在Controller里新建一个Action用于保存图片并返回图片路径(这方法是 eflay 前辈博客上说的)

public ActionResult UpLoadProcess(string id, string name, string type, string lastModifiedDate, int size, HttpPostedFileBase file)
  {
   string filePathName = string.Empty;

   string localPath = Path.Combine(HttpRuntime.AppDomainAppPath, "Upload");
   if (Request.Files.Count == 0)
   {
    return Json(new { jsonrpc = 2.0, error = new { code = 102, message = "保存失败" }, id = "id" });
   }

   string ex = Path.GetExtension(file.FileName);
   filePathName = Guid.NewGuid().ToString("N") + ex;
   if (!System.IO.Directory.Exists(localPath))
   {
    System.IO.Directory.CreateDirectory(localPath);
   }
   file.SaveAs(Path.Combine(localPath, filePathName));

   return Json(new
   {
    jsonrpc = "2.0",
    id = id,
    filePath = "/Upload/" + filePathName
   });
  
  }

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...